88from agentex .types .span import Span
99from agentex .lib .types .tracing import SGPTracingProcessorConfig
1010from agentex .lib .utils .logging import make_logger
11+ from agentex .lib .environment_variables import EnvironmentVariables
1112from 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