@@ -267,9 +267,7 @@ def _setup_telemetry(
267267 # TODO - remove the condition and else branch here once
268268 # maybe_set_otel_providers is no longer experimental.
269269 if otel_to_cloud :
270- _setup_telemetry_experimental (
271- otel_to_cloud = otel_to_cloud , internal_exporters = internal_exporters
272- )
270+ _setup_telemetry_experimental (internal_exporters = internal_exporters )
273271 else :
274272 # Old logic - to be removed when above leaves experimental.
275273 tracer_provider = TracerProvider ()
@@ -279,7 +277,6 @@ def _setup_telemetry(
279277
280278
281279def _setup_telemetry_experimental (
282- otel_to_cloud : bool = False ,
283280 internal_exporters : list [SpanProcessor ] = None ,
284281):
285282 from ..telemetry .setup import maybe_set_otel_providers
@@ -293,25 +290,37 @@ def _setup_telemetry_experimental(
293290 # Register ADK-specific exporters in trace provider.
294291 otel_hooks_to_add .append (OTelHooks (span_processors = internal_exporters ))
295292
296- if otel_to_cloud :
297- from ..telemetry .google_cloud import get_gcp_exporters
298- from ..telemetry .google_cloud import get_gcp_resource
299-
300- otel_hooks_to_add .append (
301- get_gcp_exporters (
302- # TODO - use trace_to_cloud here as well once otel_to_cloud is no
303- # longer experimental.
304- enable_cloud_tracing = True ,
305- enable_cloud_metrics = True ,
306- enable_cloud_logging = True ,
307- )
308- )
309- otel_resource = get_gcp_resource ()
293+ from ..telemetry .google_cloud import get_gcp_exporters
294+ from ..telemetry .google_cloud import get_gcp_resource
295+
296+ otel_hooks_to_add .append (
297+ get_gcp_exporters (
298+ # TODO - use trace_to_cloud here as well once otel_to_cloud is no
299+ # longer experimental.
300+ enable_cloud_tracing = True ,
301+ enable_cloud_metrics = True ,
302+ enable_cloud_logging = True ,
303+ )
304+ )
305+ otel_resource = get_gcp_resource ()
310306
311307 maybe_set_otel_providers (
312308 otel_hooks_to_setup = otel_hooks_to_add , otel_resource = otel_resource
313309 )
314310
311+ # Set instrumentation to enable emitting OTel data from GenAISDK
312+ # Currently the instrumentation lib is in extras dependencies, make sure to
313+ # warn the user if it's not installed.
314+ try :
315+ from opentelemetry .instrumentation .google_genai import GoogleGenAiSdkInstrumentor
316+
317+ GoogleGenAiSdkInstrumentor ().instrument ()
318+ except ImportError :
319+ logger .warning (
320+ "Unable to import GoogleGenAiSdkInstrumentor - some"
321+ " telemetry will be disabled. Make sure to install google-adk[otel-gcp]"
322+ )
323+
315324
316325class AdkWebServer :
317326 """Helper class for setting up and running the ADK web server on FastAPI.
0 commit comments