File tree Expand file tree Collapse file tree
core/src/main/java/com/google/adk/telemetry
dev/src/main/java/com/google/adk/web/config Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -133,14 +133,20 @@ public class Tracing {
133133 AttributeKey .stringKey ("gcp.vertex.agent.data" );
134134
135135 @ SuppressWarnings ("NonFinalStaticField" )
136- private static Tracer tracer = GlobalOpenTelemetry .getTracer ("gcp.vertex.agent" );
136+ private static volatile Tracer tracer = GlobalOpenTelemetry .getTracer ("gcp.vertex.agent" );
137137
138138 private static final boolean CAPTURE_MESSAGE_CONTENT_IN_SPANS =
139139 Boolean .parseBoolean (
140140 System .getenv ().getOrDefault ("ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS" , "true" ));
141141
142142 private Tracing () {}
143143
144+ public static void setTracer (Tracer customTracer ) {
145+ if (customTracer != null ) {
146+ tracer = customTracer ;
147+ }
148+ }
149+
144150 private static void setInvocationAttributes (
145151 Span span , InvocationContext invocationContext , String eventId ) {
146152 span .setAttribute (ADK_INVOCATION_ID , invocationContext .invocationId ());
Original file line number Diff line number Diff line change 1616
1717package com .google .adk .web .config ;
1818
19+ import com .google .adk .telemetry .Tracing ;
1920import com .google .adk .web .service .ApiServerSpanExporter ;
2021import io .opentelemetry .api .OpenTelemetry ;
2122import io .opentelemetry .api .common .AttributeKey ;
@@ -64,13 +65,17 @@ public OpenTelemetry openTelemetrySdk(SdkTracerProvider sdkTracerProvider) {
6465 // If we get here, it's already set, so just return a new instance without global
6566 // registration
6667 otelLog .debug ("OpenTelemetry already registered globally, creating non-global instance." );
68+ OpenTelemetrySdk sdk =
69+ OpenTelemetrySdk .builder ().setTracerProvider (sdkTracerProvider ).build ();
70+ Tracing .setTracer (sdk .getTracer ("gcp.vertex.agent" ));
6771 return OpenTelemetrySdk .builder ().setTracerProvider (sdkTracerProvider ).build ();
6872 } catch (IllegalStateException e ) {
6973 // GlobalOpenTelemetry hasn't been set yet, safe to register globally
7074 otelLog .debug ("Registering OpenTelemetry globally." );
7175 OpenTelemetrySdk otelSdk =
7276 OpenTelemetrySdk .builder ().setTracerProvider (sdkTracerProvider ).buildAndRegisterGlobal ();
7377 Runtime .getRuntime ().addShutdownHook (new Thread (otelSdk ::close ));
78+ Tracing .setTracer (otelSdk .getTracer ("gcp.vertex.agent" ));
7479 return otelSdk ;
7580 }
7681 }
You can’t perform that action at this time.
0 commit comments