Files
RKest 424ac79e8f feat(telemetry)!: default to experimental GenAI semconv, with ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN=otel_semconv_1_36 rollback (#1635)
* feat(telemetry)!: default to experimental GenAI semconv, with ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN=otel_semconv_1_36 rollback

ADK now emits the experimental OpenTelemetry GenAI semantic conventions by
default, following adk-python's schema v2: one
gen_ai.client.inference.operation.details event per model call,
gen_ai.tool.call.arguments/result on execute_tool gated on span content
capture, and an entrypoint invoke_workflow span. Message content is
recorded as structured attribute values on spans as well as events, where
adk-python records JSON strings on spans.

ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN=otel_semconv_1_36 restores the previous
format, and otel_semconv_1_44 names the default. Values are
case-insensitive, and adk-python's 1 and 2 are accepted for them. No
otel_semconv_1_36 golden changes in this commit.

A model call and a runner invocation are traced only through
InstrumentGenerateContent and InstrumentInvocation, so the generate_content
span and its log records cannot drift apart.

Closes #1634

* fix(telemetry): address review comments on docs and number conversion

* fix(telemetry): describe the request as the model left it in the inference event

* refactor(telemetry): record request messages on the span and the event through operationDetails

* fix(telemetry): report dropped span attributes through the OpenTelemetry error handler

* fix(telemetry): add error.type to workflow node and summarizer-panic spans

* feat(telemetry): report a streamed inference as adk-python does in the default schema

* test(telemetry): have MockModel report STOP on unstreamed responses, as a real model does
2026-10-19 16:36:40 +02:00
..