Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
cd5601ac
Unverified
Commit
cd5601ac
authored
Oct 22, 2024
by
Ronen Schaffer
Committed by
GitHub
Oct 22, 2024
Browse files
[BugFix] Prevent exporting duplicate OpenTelemetry spans (#9017)
parent
434984e6
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
7 deletions
+36
-7
tests/tracing/test_tracing.py
tests/tracing/test_tracing.py
+26
-4
vllm/engine/llm_engine.py
vllm/engine/llm_engine.py
+10
-3
No files found.
tests/tracing/test_tracing.py
View file @
cd5601ac
...
...
@@ -87,8 +87,19 @@ def test_traces(trace_service):
f
"The fake trace service didn't receive a trace within "
f
"the
{
timeout
}
seconds timeout"
)
attributes
=
decode_attributes
(
trace_service
.
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
[
0
].
attributes
)
request
=
trace_service
.
request
assert
len
(
request
.
resource_spans
)
==
1
,
(
f
"Expected 1 resource span, "
f
"but got
{
len
(
request
.
resource_spans
)
}
"
)
assert
len
(
request
.
resource_spans
[
0
].
scope_spans
)
==
1
,
(
f
"Expected 1 scope span, "
f
"but got
{
len
(
request
.
resource_spans
[
0
].
scope_spans
)
}
"
)
assert
len
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
)
==
1
,
(
f
"Expected 1 span, "
f
"but got
{
len
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
)
}
"
)
attributes
=
decode_attributes
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
[
0
].
attributes
)
assert
attributes
.
get
(
SpanAttributes
.
LLM_RESPONSE_MODEL
)
==
model
assert
attributes
.
get
(
SpanAttributes
.
LLM_REQUEST_ID
)
==
outputs
[
0
].
request_id
...
...
@@ -142,8 +153,19 @@ def test_traces_with_detailed_steps(trace_service):
f
"The fake trace service didn't receive a trace within "
f
"the
{
timeout
}
seconds timeout"
)
attributes
=
decode_attributes
(
trace_service
.
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
[
0
].
attributes
)
request
=
trace_service
.
request
assert
len
(
request
.
resource_spans
)
==
1
,
(
f
"Expected 1 resource span, "
f
"but got
{
len
(
request
.
resource_spans
)
}
"
)
assert
len
(
request
.
resource_spans
[
0
].
scope_spans
)
==
1
,
(
f
"Expected 1 scope span, "
f
"but got
{
len
(
request
.
resource_spans
[
0
].
scope_spans
)
}
"
)
assert
len
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
)
==
1
,
(
f
"Expected 1 span, "
f
"but got
{
len
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
)
}
"
)
attributes
=
decode_attributes
(
request
.
resource_spans
[
0
].
scope_spans
[
0
].
spans
[
0
].
attributes
)
assert
attributes
.
get
(
SpanAttributes
.
LLM_RESPONSE_MODEL
)
==
model
assert
attributes
.
get
(
SpanAttributes
.
LLM_REQUEST_ID
)
==
outputs
[
0
].
request_id
...
...
vllm/engine/llm_engine.py
View file @
cd5601ac
...
...
@@ -1245,7 +1245,7 @@ class LLMEngine:
skip
)
# Tracing
self
.
do_tracing
(
scheduler_outputs
)
self
.
do_tracing
(
scheduler_outputs
,
finished_before
)
return
None
...
...
@@ -1840,11 +1840,18 @@ class LLMEngine:
def
is_tracing_enabled
(
self
)
->
bool
:
return
self
.
tracer
is
not
None
def
do_tracing
(
self
,
scheduler_outputs
:
SchedulerOutputs
)
->
None
:
def
do_tracing
(
self
,
scheduler_outputs
:
SchedulerOutputs
,
finished_before
:
Optional
[
List
[
int
]]
=
None
)
->
None
:
if
self
.
tracer
is
None
:
return
for
scheduled_seq_group
in
scheduler_outputs
.
scheduled_seq_groups
:
for
idx
,
scheduled_seq_group
in
enumerate
(
scheduler_outputs
.
scheduled_seq_groups
):
# Skip double tracing when using async output proc
if
finished_before
and
idx
in
finished_before
:
continue
seq_group
=
scheduled_seq_group
.
seq_group
if
seq_group
.
is_finished
():
self
.
create_trace_span
(
seq_group
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment