Skip to content

Commit 8581516

Browse files
authored
fix(tracing): fix empty local tracing file (#108)
* fix(tracing): fix empty local tracing file * fix: format code * fix: Remove the judgment of the Agent type --------- Co-authored-by: wuqingfu.528 <[email protected]>
1 parent e332bcb commit 8581516

File tree

3 files changed

+30
-31
lines changed

3 files changed

+30
-31
lines changed

veadk/tracing/telemetry/exporters/inmemory_exporter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,6 @@ def __init__(self, name: str = "inmemory_exporter") -> None:
106106

107107
self._exporter = _InMemoryExporter()
108108
self.processor = _InMemorySpanProcessor(self._exporter)
109+
110+
111+
_INMEMORY_EXPORTER_INSTANCE = InMemoryExporter()

veadk/tracing/telemetry/opentelemetry_tracer.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
3232
from veadk.tracing.telemetry.exporters.base_exporter import BaseExporter
3333
from veadk.tracing.telemetry.exporters.inmemory_exporter import InMemoryExporter
34+
from veadk.tracing.telemetry.exporters.inmemory_exporter import (
35+
_INMEMORY_EXPORTER_INSTANCE,
36+
)
3437
from veadk.utils.logger import get_logger
3538
from veadk.utils.patches import patch_google_adk_telemetry
3639

@@ -110,7 +113,7 @@ def _init_global_tracer_provider(self) -> None:
110113
f"Add span processor for exporter `{exporter.__class__.__name__}` to OpentelemetryTracer failed."
111114
)
112115

113-
self._inmemory_exporter = InMemoryExporter()
116+
self._inmemory_exporter = _INMEMORY_EXPORTER_INSTANCE
114117
if self._inmemory_exporter.processor:
115118
# make sure the in memory exporter processor is added at index 0
116119
# because we use this to record all spans

veadk/tracing/telemetry/telemetry.py

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
LLMAttributesParams,
2929
ToolAttributesParams,
3030
)
31+
from veadk.tracing.telemetry.exporters.inmemory_exporter import (
32+
_INMEMORY_EXPORTER_INSTANCE,
33+
)
3134
from veadk.utils.logger import get_logger
3235

3336
logger = get_logger(__name__)
@@ -54,8 +57,6 @@ def trace_send_data(): ...
5457
def set_common_attributes(
5558
invocation_context: InvocationContext, current_span: _Span, **kwargs
5659
) -> None:
57-
from veadk.agent import Agent
58-
5960
if current_span.context:
6061
current_span_id = current_span.context.trace_id
6162
else:
@@ -64,34 +65,26 @@ def set_common_attributes(
6465
)
6566
return
6667

67-
if isinstance(invocation_context.agent, Agent) and invocation_context.agent.tracers:
68-
try:
69-
from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer
70-
71-
tracer: OpentelemetryTracer = invocation_context.agent.tracers[0] # type: ignore
72-
spans = tracer._inmemory_exporter.processor.spans # # type: ignore
73-
74-
spans_in_current_trace = [
75-
span
76-
for span in spans
77-
if span.context and span.context.trace_id == current_span_id
78-
]
79-
80-
common_attributes = ATTRIBUTES.get("common", {})
81-
for span in spans_in_current_trace:
82-
if span.name.startswith("invocation"):
83-
span.set_attribute("gen_ai.operation.name", "chain")
84-
elif span.name.startswith("agent_run"):
85-
span.set_attribute("gen_ai.operation.name", "agent")
86-
for attr_name, attr_extractor in common_attributes.items():
87-
value = attr_extractor(**kwargs)
88-
span.set_attribute(attr_name, value)
89-
except Exception as e:
90-
logger.error(f"Failed to set common attributes for spans: {e}")
91-
else:
92-
logger.warning(
93-
"Failed to set common attributes for spans as your agent is not VeADK Agent. Skip this."
94-
)
68+
try:
69+
spans = _INMEMORY_EXPORTER_INSTANCE.processor.spans # # type: ignore
70+
71+
spans_in_current_trace = [
72+
span
73+
for span in spans
74+
if span.context and span.context.trace_id == current_span_id
75+
]
76+
77+
common_attributes = ATTRIBUTES.get("common", {})
78+
for span in spans_in_current_trace:
79+
if span.name.startswith("invocation"):
80+
span.set_attribute("gen_ai.operation.name", "chain")
81+
elif span.name.startswith("agent_run"):
82+
span.set_attribute("gen_ai.operation.name", "agent")
83+
for attr_name, attr_extractor in common_attributes.items():
84+
value = attr_extractor(**kwargs)
85+
span.set_attribute(attr_name, value)
86+
except Exception as e:
87+
logger.error(f"Failed to set common attributes for spans: {e}")
9588

9689

9790
def trace_tool_call(

0 commit comments

Comments
 (0)