mirror of
https://github.com/google/adk-go.git
synced 2026-10-28 08:34:37 +08:00
* 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