From 8bccc3b97147f9ba7debb767c512c04553a6cc9f Mon Sep 17 00:00:00 2001 From: Hemasekhar Puchuginjala Date: Tue, 5 May 2026 18:55:41 +0530 Subject: [PATCH] fix: inject Dev UI tracer into core engine for embedded telemetry --- .../adk/web/config/OpenTelemetryConfig.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/dev/src/main/java/com/google/adk/web/config/OpenTelemetryConfig.java b/dev/src/main/java/com/google/adk/web/config/OpenTelemetryConfig.java index b2d6429dc..407c0ac40 100644 --- a/dev/src/main/java/com/google/adk/web/config/OpenTelemetryConfig.java +++ b/dev/src/main/java/com/google/adk/web/config/OpenTelemetryConfig.java @@ -60,18 +60,14 @@ public OpenTelemetry openTelemetrySdk(SdkTracerProvider sdkTracerProvider) { // Check if OpenTelemetry has already been set globally (common in tests) try { - io.opentelemetry.api.GlobalOpenTelemetry.get(); - // If we get here, it's already set, so just return a new instance without global - // registration - otelLog.debug("OpenTelemetry already registered globally, creating non-global instance."); - return OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider).build(); - } catch (IllegalStateException e) { - // GlobalOpenTelemetry hasn't been set yet, safe to register globally otelLog.debug("Registering OpenTelemetry globally."); - OpenTelemetrySdk otelSdk = + OpenTelemetrySdk sdk = OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider).buildAndRegisterGlobal(); - Runtime.getRuntime().addShutdownHook(new Thread(otelSdk::close)); - return otelSdk; + Runtime.getRuntime().addShutdownHook(new Thread(sdk::close)); + return sdk; + } catch (IllegalStateException e) { + otelLog.debug("OpenTelemetry already registered globally, returning non-global instance."); + return OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider).build(); } } }