Skip to content

Commit 900f66b

Browse files
authored
feat: Adding Agent info to SGP tracing metadata (#85)
* Update sgp_tracing_processor.py * Update sgp_tracing_processor.py * Update sgp_tracing_processor.py * Update sgp_tracing_processor.py * Update sgp_tracing_processor.py * Update sgp_tracing_processor.py
1 parent db4a953 commit 900f66b

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from agentex.types.span import Span
99
from agentex.lib.types.tracing import SGPTracingProcessorConfig
1010
from agentex.lib.utils.logging import make_logger
11+
from agentex.lib.environment_variables import EnvironmentVariables
1112
from agentex.lib.core.tracing.processors.tracing_processor_interface import (
1213
SyncTracingProcessor,
1314
AsyncTracingProcessor,
@@ -24,9 +25,24 @@ def __init__(self, config: SGPTracingProcessorConfig):
2425
disabled=disabled,
2526
)
2627
self._spans: dict[str, SGPSpan] = {}
28+
self.env_vars = EnvironmentVariables.refresh()
29+
30+
def _add_source_to_span(self, span: Span) -> None:
31+
if span.data is None:
32+
span.data = {}
33+
if isinstance(span.data, dict):
34+
span.data["__source__"] = "agentex"
35+
if self.env_vars.ACP_TYPE is not None:
36+
span.data["__acp_type__"] = self.env_vars.ACP_TYPE
37+
if self.env_vars.AGENT_NAME is not None:
38+
span.data["__agent_name__"] = self.env_vars.AGENT_NAME
39+
if self.env_vars.AGENT_ID is not None:
40+
span.data["__agent_id__"] = self.env_vars.AGENT_ID
2741

2842
@override
2943
def on_span_start(self, span: Span) -> None:
44+
self._add_source_to_span(span)
45+
3046
sgp_span = create_span(
3147
name=span.name,
3248
span_id=span.id,
@@ -50,6 +66,7 @@ def on_span_end(self, span: Span) -> None:
5066
)
5167
return
5268

69+
self._add_source_to_span(span)
5370
sgp_span.output = span.output # type: ignore[assignment]
5471
sgp_span.metadata = span.data # type: ignore[assignment]
5572
sgp_span.end_time = span.end_time.isoformat() # type: ignore[union-attr]
@@ -70,9 +87,23 @@ def __init__(self, config: SGPTracingProcessorConfig):
7087
if not self.disabled
7188
else None
7289
)
90+
self.env_vars = EnvironmentVariables.refresh()
91+
92+
def _add_source_to_span(self, span: Span) -> None:
93+
if span.data is None:
94+
span.data = {}
95+
if isinstance(span.data, dict):
96+
span.data["__source__"] = "agentex"
97+
if self.env_vars.ACP_TYPE is not None:
98+
span.data["__acp_type__"] = self.env_vars.ACP_TYPE
99+
if self.env_vars.AGENT_NAME is not None:
100+
span.data["__agent_name__"] = self.env_vars.AGENT_NAME
101+
if self.env_vars.AGENT_ID is not None:
102+
span.data["__agent_id__"] = self.env_vars.AGENT_ID
73103

74104
@override
75105
async def on_span_start(self, span: Span) -> None:
106+
self._add_source_to_span(span)
76107
sgp_span = create_span(
77108
name=span.name,
78109
span_id=span.id,
@@ -85,6 +116,7 @@ async def on_span_start(self, span: Span) -> None:
85116
sgp_span.start_time = span.start_time.isoformat() # type: ignore[union-attr]
86117

87118
if self.disabled:
119+
logger.warning("SGP is disabled, skipping span upsert")
88120
return
89121
await self.sgp_async_client.spans.upsert_batch( # type: ignore[union-attr]
90122
items=[sgp_span.to_request_params()]
@@ -101,6 +133,7 @@ async def on_span_end(self, span: Span) -> None:
101133
)
102134
return
103135

136+
self._add_source_to_span(span)
104137
sgp_span.output = span.output # type: ignore[assignment]
105138
sgp_span.metadata = span.data # type: ignore[assignment]
106139
sgp_span.end_time = span.end_time.isoformat() # type: ignore[union-attr]

0 commit comments

Comments
 (0)