Skip to content

Commit 5e410e5

Browse files
authored
fix(tracing): fix gen_ai input and output string (#224)
* fix: gen_ai input ouput * fix: format
1 parent c02ba62 commit 5e410e5

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

veadk/tracing/telemetry/telemetry.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
ToolAttributesParams,
3131
)
3232
from veadk.utils.logger import get_logger
33+
from veadk.utils.misc import safe_json_serialize
3334

3435
logger = get_logger(__name__)
3536

@@ -92,8 +93,10 @@ def _set_agent_input_attribute(
9293
user_content = invocation_context.user_content
9394
if user_content and user_content.parts:
9495
# set gen_ai.input attribute required by APMPlus
95-
span.set_attribute("gen_ai.input", user_content.model_dump(exclude_none=True))
96-
96+
span.set_attribute(
97+
"gen_ai.input",
98+
safe_json_serialize(user_content.model_dump(exclude_none=True)),
99+
)
97100
span.add_event(
98101
"gen_ai.user.message",
99102
{
@@ -132,7 +135,9 @@ def _set_agent_output_attribute(span: Span, llm_response: LlmResponse) -> None:
132135
content = llm_response.content
133136
if content and content.parts:
134137
# set gen_ai.output attribute required by APMPlus
135-
span.set_attribute("gen_ai.output", content.model_dump(exclude_none=True))
138+
span.set_attribute(
139+
"gen_ai.output", safe_json_serialize(content.model_dump(exclude_none=True))
140+
)
136141

137142
for idx, part in enumerate(content.parts):
138143
if part.text:

0 commit comments

Comments
 (0)