diff --git a/README.md b/README.md index 940ca34df..f79b97cc7 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ All instrumentations use [opentelemetry-util-genai](./util/opentelemetry-util-ge | --------------- | ----------------- | ------- | ------ | | [opentelemetry-instrumentation-genai-claude-agent-sdk](./instrumentation/opentelemetry-instrumentation-genai-claude-agent-sdk) | claude-agent-sdk >= 0.1.14, < 1 | 1.3b0.dev | skeleton | | [opentelemetry-instrumentation-genai-crewai](./instrumentation/opentelemetry-instrumentation-genai-crewai) | crewai >= 1.10.1, < 2 | 1.3b0.dev | skeleton | -| [opentelemetry-instrumentation-genai-qwenpaw](./instrumentation/opentelemetry-instrumentation-genai-qwenpaw) | qwenpaw >= 1.1.0, < 2.0.0; python_version < '3.14' | 1.3b0.dev | to be released | +| [opentelemetry-instrumentation-genai-qwenpaw](./instrumentation/opentelemetry-instrumentation-genai-qwenpaw) | qwenpaw >= 1.1.0, < 2.0.0; python_version < '3.14' | 1.3b0 | to be released | | [opentelemetry-instrumentation-genai-weaviate-client](./instrumentation/opentelemetry-instrumentation-genai-weaviate-client) | weaviate-client >= 3.0.0, <5.0.0 | 1.3b0.dev | skeleton | diff --git a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/731.added b/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/731.added deleted file mode 100644 index 452fbf78f..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/731.added +++ /dev/null @@ -1 +0,0 @@ -Add instrumentation for Agent, Team, and Workflow continue_run and acontinue_run methods. diff --git a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/821.changed deleted file mode 100644 index 43180e801..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record tool call arguments and dict results as compact JSON. Previously they included spaces, e.g. `{"a": 3, "b": 4}`, now `{"a":3,"b":4}`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/868.added b/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/868.added deleted file mode 100644 index 2033fac72..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-agno/.changelog/868.added +++ /dev/null @@ -1 +0,0 @@ -Capture conversation ID at span start diff --git a/instrumentation/opentelemetry-instrumentation-genai-agno/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-agno/CHANGELOG.md index 7a78a8939..96a525660 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-agno/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-agno/CHANGELOG.md @@ -15,6 +15,22 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Add instrumentation for Agent, Team, and Workflow continue_run and + acontinue_run methods. + ([#731](https://github.com/open-telemetry/opentelemetry-python-genai/pull/731)) +- Capture conversation ID at span start + ([#868](https://github.com/open-telemetry/opentelemetry-python-genai/pull/868)) + +### Changed + +- Record tool call arguments and dict results as compact JSON. Previously they + included spaces, e.g. `{"a": 3, "b": 4}`, now `{"a":3,"b":4}`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-agno/src/opentelemetry/instrumentation/genai/agno/version.py b/instrumentation/opentelemetry-instrumentation-genai-agno/src/opentelemetry/instrumentation/genai/agno/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-agno/src/opentelemetry/instrumentation/genai/agno/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-agno/src/opentelemetry/instrumentation/genai/agno/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/779.added b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/779.added deleted file mode 100644 index e4127fd6d..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/779.added +++ /dev/null @@ -1 +0,0 @@ -Capture reasoning token counts `gen_ai.usage.reasoning.output_tokens` on messages diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/781.added b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/781.added deleted file mode 100644 index 9359851b0..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/781.added +++ /dev/null @@ -1 +0,0 @@ -Add instrumentation for `beta.messages` (`create`, `stream`, and `parse`). diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/793.fixed b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/793.fixed deleted file mode 100644 index c75fb14e7..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/793.fixed +++ /dev/null @@ -1 +0,0 @@ -Preserve available Anthropic partial response content when a stream fails. diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/866.fixed b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/866.fixed deleted file mode 100644 index 077a333c2..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/866.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop request extraction from raising on a `system` list that holds plain strings. diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/873.fixed b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/873.fixed deleted file mode 100644 index e696059ce..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/873.fixed +++ /dev/null @@ -1 +0,0 @@ -Capture one-shot message, content, system, and tool iterators lazily as the Anthropic SDK consumes them. diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/936.changed b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/936.changed deleted file mode 100644 index a23b866e8..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/936.changed +++ /dev/null @@ -1 +0,0 @@ -Drop file-backed and iterator document content instead of recording it as a type-only `GenericPart`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/966.added b/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/966.added deleted file mode 100644 index 4af4253be..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/.changelog/966.added +++ /dev/null @@ -1 +0,0 @@ -Support anthropic 2.x diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-anthropic/CHANGELOG.md index 191227727..890475f55 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-anthropic/CHANGELOG.md @@ -15,6 +15,35 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Capture reasoning token counts `gen_ai.usage.reasoning.output_tokens` on + messages + ([#779](https://github.com/open-telemetry/opentelemetry-python-genai/pull/779)) +- Add instrumentation for `beta.messages` (`create`, `stream`, and `parse`). + ([#781](https://github.com/open-telemetry/opentelemetry-python-genai/pull/781)) +- Support anthropic 2.x + ([#966](https://github.com/open-telemetry/opentelemetry-python-genai/pull/966)) + +### Changed + +- Drop file-backed and iterator document content instead of recording it as a + type-only `GenericPart`. + ([#936](https://github.com/open-telemetry/opentelemetry-python-genai/pull/936)) + +### Fixed + +- Preserve available Anthropic partial response content when a stream fails. + ([#793](https://github.com/open-telemetry/opentelemetry-python-genai/pull/793)) +- Stop request extraction from raising on a `system` list that holds plain + strings. + ([#866](https://github.com/open-telemetry/opentelemetry-python-genai/pull/866)) +- Capture one-shot message, content, system, and tool iterators lazily as the + Anthropic SDK consumes them. + ([#873](https://github.com/open-telemetry/opentelemetry-python-genai/pull/873)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-anthropic/src/opentelemetry/instrumentation/genai/anthropic/version.py b/instrumentation/opentelemetry-instrumentation-genai-anthropic/src/opentelemetry/instrumentation/genai/anthropic/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-anthropic/src/opentelemetry/instrumentation/genai/anthropic/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-anthropic/src/opentelemetry/instrumentation/genai/anthropic/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/733.added b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/733.added deleted file mode 100644 index 1357d6e04..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/733.added +++ /dev/null @@ -1 +0,0 @@ -Add support for Bedrock Agent Runtime (retrieve_and_generate and retrieve_and_generate_stream) in synchronous and asynchronous calls. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/736.added b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/736.added deleted file mode 100644 index 83aa70a65..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/736.added +++ /dev/null @@ -1 +0,0 @@ -Add instrumentation for ``bedrock-agent-runtime.invoke_inline_agent``. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/776.added b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/776.added deleted file mode 100644 index 19d4131d3..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/776.added +++ /dev/null @@ -1 +0,0 @@ -Add support for Bedrock Embeddings (Amazon Titan, Cohere, etc.) and Bedrock Agent Runtime (invoke_agent and retrieve) in synchronous and asynchronous calls. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/866.fixed b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/866.fixed deleted file mode 100644 index 718b4e6f1..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/866.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop request extraction from raising on a Converse `document` block whose `format` is not a string. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/870.fixed b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/870.fixed deleted file mode 100644 index d57ea250e..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/870.fixed +++ /dev/null @@ -1 +0,0 @@ -Capture Bedrock Converse request messages provided as tuples. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/932.fixed b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/932.fixed deleted file mode 100644 index 1d884d080..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/932.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop recording an empty reasoning part for redacted Converse reasoning content. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/936.changed b/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/936.changed deleted file mode 100644 index b5ae048a8..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/.changelog/936.changed +++ /dev/null @@ -1 +0,0 @@ -Drop unmapped content blocks and non-text system instruction parts instead of recording them as type-only `GenericPart`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-bedrock/CHANGELOG.md index 41f0bbd69..d32f5c3c7 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-bedrock/CHANGELOG.md @@ -15,6 +15,37 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Add support for Bedrock Agent Runtime (retrieve_and_generate and + retrieve_and_generate_stream) in synchronous and asynchronous calls. + ([#733](https://github.com/open-telemetry/opentelemetry-python-genai/pull/733)) +- Add instrumentation for ``bedrock-agent-runtime.invoke_inline_agent``. + ([#736](https://github.com/open-telemetry/opentelemetry-python-genai/pull/736)) +- Add support for Bedrock Embeddings (Amazon Titan, Cohere, etc.) and Bedrock + Agent Runtime (invoke_agent and retrieve) in synchronous and asynchronous + calls. + ([#776](https://github.com/open-telemetry/opentelemetry-python-genai/pull/776)) + +### Changed + +- Drop unmapped content blocks and non-text system instruction parts instead of + recording them as type-only `GenericPart`. + ([#936](https://github.com/open-telemetry/opentelemetry-python-genai/pull/936)) + +### Fixed + +- Stop request extraction from raising on a Converse `document` block whose + `format` is not a string. + ([#866](https://github.com/open-telemetry/opentelemetry-python-genai/pull/866)) +- Capture Bedrock Converse request messages provided as tuples. + ([#870](https://github.com/open-telemetry/opentelemetry-python-genai/pull/870)) +- Stop recording an empty reasoning part for redacted Converse reasoning + content. + ([#932](https://github.com/open-telemetry/opentelemetry-python-genai/pull/932)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-bedrock/src/opentelemetry/instrumentation/genai/bedrock/version.py b/instrumentation/opentelemetry-instrumentation-genai-bedrock/src/opentelemetry/instrumentation/genai/bedrock/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-bedrock/src/opentelemetry/instrumentation/genai/bedrock/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-bedrock/src/opentelemetry/instrumentation/genai/bedrock/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/683.added b/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/683.added deleted file mode 100644 index bdd379b3a..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/683.added +++ /dev/null @@ -1 +0,0 @@ -Add instrumentation for ``dspy.LM``. diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/780.added b/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/780.added deleted file mode 100644 index 1534b7fe3..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/780.added +++ /dev/null @@ -1 +0,0 @@ -Extend DSPy retrieval instrumentation to cover `dspy.ColBERTv2`, `dspy.Embeddings`, `EmbeddingsWithScores`, and `dspy.Retrieve` subclasses overriding `forward()`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/821.changed deleted file mode 100644 index be43c096c..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record non-string tool call results as JSON strings, and convert objects through `model_dump` or `__dict__`. Previously primitives were recorded as-is and objects through `str()`, e.g. a result of `7` was recorded as `7`, now `"7"`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/885.fixed b/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/885.fixed deleted file mode 100644 index 4561a6e17..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/.changelog/885.fixed +++ /dev/null @@ -1 +0,0 @@ -Record `gen_ai.response.finish_reasons` on `dspy.ReAct` and `dspy.ReActV2` agent spans regardless of content capture. diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-dspy/CHANGELOG.md index 613e34ac1..2e1554b9d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-dspy/CHANGELOG.md @@ -15,6 +15,31 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Add instrumentation for ``dspy.LM``. + ([#683](https://github.com/open-telemetry/opentelemetry-python-genai/pull/683)) +- Extend DSPy retrieval instrumentation to cover `dspy.ColBERTv2`, + `dspy.Embeddings`, `EmbeddingsWithScores`, and `dspy.Retrieve` subclasses + overriding `forward()`. + ([#780](https://github.com/open-telemetry/opentelemetry-python-genai/pull/780)) + +### Changed + +- Record non-string tool call results as JSON strings, and convert objects + through `model_dump` or `__dict__`. Previously primitives were recorded as-is + and objects through `str()`, e.g. a result of `7` was recorded as `7`, now + `"7"`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) + +### Fixed + +- Record `gen_ai.response.finish_reasons` on `dspy.ReAct` and `dspy.ReActV2` + agent spans regardless of content capture. + ([#885](https://github.com/open-telemetry/opentelemetry-python-genai/pull/885)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-dspy/src/opentelemetry/instrumentation/genai/dspy/version.py b/instrumentation/opentelemetry-instrumentation-genai-dspy/src/opentelemetry/instrumentation/genai/dspy/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-dspy/src/opentelemetry/instrumentation/genai/dspy/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-dspy/src/opentelemetry/instrumentation/genai/dspy/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/730.added b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/730.added deleted file mode 100644 index 849c635af..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/730.added +++ /dev/null @@ -1 +0,0 @@ -Capture prompt template name - `gen_ai.prompt.name` and variables - `gen_ai.prompt.variable.` on chat diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/771.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/771.fixed deleted file mode 100644 index 9a60eb636..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/771.fixed +++ /dev/null @@ -1 +0,0 @@ -langchain: record `message.tool_calls` on the output message even when the provider spells the stop reason differently (e.g. ChatOllama `done_reason`) instead of dropping them diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/798.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/798.fixed deleted file mode 100644 index 7d588612c..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/798.fixed +++ /dev/null @@ -1 +0,0 @@ -Set `gen_ai.conversation.id` on agents created without a name, and pass the conversation id to child spans through the OTel context. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.changed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.changed deleted file mode 100644 index ab648ff66..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.changed +++ /dev/null @@ -1 +0,0 @@ -Require `langchain >= 0.3.22`. Context propagation across LangGraph nodes requires LangGraph 0.3.18 or later. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.fixed deleted file mode 100644 index 26207de30..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/818.fixed +++ /dev/null @@ -1 +0,0 @@ -Fix context propagation to nested calls across tasks and threads, and finalize chat spans when async calls are cancelled or interrupted. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/821.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/821.fixed deleted file mode 100644 index 1dc7a4057..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/821.fixed +++ /dev/null @@ -1 +0,0 @@ -Record the tool call result when a tool is invoked without a tool call id. Previously the result was dropped because LangChain passes the raw return value instead of a `ToolMessage`, e.g. `weather.invoke({"city": "Paris"})` returning `{"temp": 20}` recorded no result, now `{"temp":20}`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/835.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/835.fixed deleted file mode 100644 index 7aca0d749..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/835.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop logging `AttributeError` warnings when LangGraph dispatches interrupt and resume callbacks. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/881.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/881.fixed deleted file mode 100644 index 14f1c8a88..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/881.fixed +++ /dev/null @@ -1 +0,0 @@ -Record assistant messages given as role/content dicts or `(role, content)` tuples in workflow and agent `gen_ai.output.messages` instead of dropping them, and keep convertible messages when another entry in the list cannot be converted. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/884.changed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/884.changed deleted file mode 100644 index c0f2a31a0..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/884.changed +++ /dev/null @@ -1 +0,0 @@ -Validate LangChain instrumentation through offline public-API tests, including tool-result capture. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/909.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/909.fixed deleted file mode 100644 index 9d941726c..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/909.fixed +++ /dev/null @@ -1 +0,0 @@ -Reduce message conversion when capturing workflow and agent `gen_ai.output.messages`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/924.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/924.fixed deleted file mode 100644 index f1ebb16c6..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/924.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop cached callback managers from recording new runs after uninstrumentation and refresh inactive handlers on reinstrumentation, including direct callback dispatch. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/937.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/937.fixed deleted file mode 100644 index a23ef8859..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/937.fixed +++ /dev/null @@ -1 +0,0 @@ -Record Anthropic cache-write input tokens reported by langchain-anthropic as per-TTL `ephemeral_*_input_tokens` breakdowns. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/944.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/944.fixed deleted file mode 100644 index 95baa04d2..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/944.fixed +++ /dev/null @@ -1,2 +0,0 @@ -Read finish reasons from response metadata when generation info does not provide a finish reason - diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/945.fixed b/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/945.fixed deleted file mode 100644 index 76b91df27..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/.changelog/945.fixed +++ /dev/null @@ -1 +0,0 @@ -Skip input message processing for unnamed agents when content capture is disabled. diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-langchain/CHANGELOG.md index deabb6a47..9062486e2 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-langchain/CHANGELOG.md @@ -15,6 +15,63 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Capture prompt template name - `gen_ai.prompt.name` and variables - + `gen_ai.prompt.variable.` on chat + ([#730](https://github.com/open-telemetry/opentelemetry-python-genai/pull/730)) + +### Changed + +- Require `langchain >= 0.3.22`. Context propagation across LangGraph nodes + requires LangGraph 0.3.18 or later. + ([#818](https://github.com/open-telemetry/opentelemetry-python-genai/pull/818)) + ([#884](https://github.com/open-telemetry/opentelemetry-python-genai/pull/884)) + +### Fixed + +- langchain: record `message.tool_calls` on the output message even when the + provider spells the stop reason differently (e.g. ChatOllama `done_reason`) + instead of dropping them + ([#771](https://github.com/open-telemetry/opentelemetry-python-genai/pull/771)) +- Set `gen_ai.conversation.id` on agents created without a name, and pass the + conversation id to child spans through the OTel context. + ([#798](https://github.com/open-telemetry/opentelemetry-python-genai/pull/798)) +- Fix context propagation to nested calls across tasks and threads, and + finalize chat spans when async calls are cancelled or interrupted. + ([#818](https://github.com/open-telemetry/opentelemetry-python-genai/pull/818)) +- Record the tool call result when a tool is invoked without a tool call id. + Previously the result was dropped because LangChain passes the raw return + value instead of a `ToolMessage`, e.g. `weather.invoke({"city": "Paris"})` + returning `{"temp": 20}` recorded no result, now `{"temp":20}`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) +- Stop logging `AttributeError` warnings when LangGraph dispatches interrupt + and resume callbacks. + ([#835](https://github.com/open-telemetry/opentelemetry-python-genai/pull/835)) +- Record assistant messages given as role/content dicts or `(role, content)` + tuples in workflow and agent `gen_ai.output.messages` instead of dropping + them, and keep convertible messages when another entry in the list cannot be + converted. + ([#881](https://github.com/open-telemetry/opentelemetry-python-genai/pull/881)) +- Reduce message conversion when capturing workflow and agent + `gen_ai.output.messages`. + ([#909](https://github.com/open-telemetry/opentelemetry-python-genai/pull/909)) +- Stop cached callback managers from recording new runs after uninstrumentation + and refresh inactive handlers on reinstrumentation, including direct callback + dispatch. + ([#924](https://github.com/open-telemetry/opentelemetry-python-genai/pull/924)) +- Record Anthropic cache-write input tokens reported by langchain-anthropic as + per-TTL `ephemeral_*_input_tokens` breakdowns. + ([#937](https://github.com/open-telemetry/opentelemetry-python-genai/pull/937)) +- Read finish reasons from response metadata when generation info does not + provide a finish reason + ([#944](https://github.com/open-telemetry/opentelemetry-python-genai/pull/944)) +- Skip input message processing for unnamed agents when content capture is + disabled. + ([#945](https://github.com/open-telemetry/opentelemetry-python-genai/pull/945)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-langchain/src/opentelemetry/instrumentation/genai/langchain/version.py b/instrumentation/opentelemetry-instrumentation-genai-langchain/src/opentelemetry/instrumentation/genai/langchain/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-langchain/src/opentelemetry/instrumentation/genai/langchain/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-langchain/src/opentelemetry/instrumentation/genai/langchain/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/821.changed deleted file mode 100644 index 0d92cdca2..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record non-string tool call results as JSON strings, and convert objects through `model_dump` or `__dict__`. Previously primitives were recorded as-is and objects through `str()`, e.g. a result of `8` was recorded as `8`, now `"8"`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/869.fixed b/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/869.fixed deleted file mode 100644 index 5677b0104..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-llama-index/.changelog/869.fixed +++ /dev/null @@ -1 +0,0 @@ -Preserve span handler state on LlamaIndexInstrumentor singleton re-instantiation. diff --git a/instrumentation/opentelemetry-instrumentation-genai-llama-index/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-llama-index/CHANGELOG.md index db7a752cf..692e90512 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-llama-index/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-llama-index/CHANGELOG.md @@ -15,6 +15,22 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Changed + +- Record non-string tool call results as JSON strings, and convert objects + through `model_dump` or `__dict__`. Previously primitives were recorded as-is + and objects through `str()`, e.g. a result of `8` was recorded as `8`, now + `"8"`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) + +### Fixed + +- Preserve span handler state on LlamaIndexInstrumentor singleton + re-instantiation. + ([#869](https://github.com/open-telemetry/opentelemetry-python-genai/pull/869)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-llama-index/src/opentelemetry/instrumentation/genai/llama_index/version.py b/instrumentation/opentelemetry-instrumentation-genai-llama-index/src/opentelemetry/instrumentation/genai/llama_index/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-llama-index/src/opentelemetry/instrumentation/genai/llama_index/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-llama-index/src/opentelemetry/instrumentation/genai/llama_index/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/821.changed deleted file mode 100644 index 21705b40b..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record tool call arguments as compact JSON for any valid JSON input and non-string results as JSON. Previously only JSON objects were normalized and results went through `str()`, e.g. arguments `[1, 2]` were recorded as `[1, 2]`, now `[1,2]`; `null` arguments are no longer recorded. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/869.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/869.fixed deleted file mode 100644 index 132b5e7a8..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/.changelog/869.fixed +++ /dev/null @@ -1 +0,0 @@ -Preserve processor state on OpenAIAgentsInstrumentor singleton re-instantiation. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/CHANGELOG.md index 5a7778c33..fc1eb3d4c 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/CHANGELOG.md @@ -15,6 +15,22 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Changed + +- Record tool call arguments as compact JSON for any valid JSON input and + non-string results as JSON. Previously only JSON objects were normalized and + results went through `str()`, e.g. arguments `[1, 2]` were recorded as `[1, + 2]`, now `[1,2]`; `null` arguments are no longer recorded. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) + +### Fixed + +- Preserve processor state on OpenAIAgentsInstrumentor singleton + re-instantiation. + ([#869](https://github.com/open-telemetry/opentelemetry-python-genai/pull/869)) + ## Version 1.2b0 (2026-09-24) ### Changed diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/src/opentelemetry/instrumentation/genai/openai_agents/version.py b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/src/opentelemetry/instrumentation/genai/openai_agents/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-openai-agents/src/opentelemetry/instrumentation/genai/openai_agents/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-openai-agents/src/opentelemetry/instrumentation/genai/openai_agents/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/681.added b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/681.added deleted file mode 100644 index 3a09b9817..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/681.added +++ /dev/null @@ -1 +0,0 @@ -Record cache-write and audio token usage from OpenAI Chat Completions responses and streams. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/786.added b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/786.added deleted file mode 100644 index a8ed66d81..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/786.added +++ /dev/null @@ -1 +0,0 @@ -Instrument `Responses.parse` and `AsyncResponses.parse`, so structured-output calls emit GenAI spans like `Responses.create`, reporting `gen_ai.output.type` as `json` for the `text_format` argument. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/812.added b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/812.added deleted file mode 100644 index 6cc042ec9..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/812.added +++ /dev/null @@ -1 +0,0 @@ -Capture reasoning tokens - `gen_ai.usage.reasoning.output_tokens` on Responses API calls diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/813.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/813.fixed deleted file mode 100644 index 9431d5716..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/813.fixed +++ /dev/null @@ -1 +0,0 @@ -Record `max_completion_tokens` as `gen_ai.request.max_tokens` on chat completion spans, whether passed as a keyword argument or via `extra_body`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/817.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/817.fixed deleted file mode 100644 index ccdb683f8..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/817.fixed +++ /dev/null @@ -1 +0,0 @@ -Suspend the chat completion and Responses API invocations while a streamed response is unconsumed and re-activate them only while a chunk is read or the stream is cleaned up: the inference span is no longer current in the caller's context between reads, so spans a caller creates between chunks are siblings of the inference span, not children. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/837.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/837.fixed deleted file mode 100644 index dbb99f22f..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/837.fixed +++ /dev/null @@ -1 +0,0 @@ -Record Responses computer calls as client tool calls and replayed results as tool inputs. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/839.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/839.fixed deleted file mode 100644 index dbca7424f..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/839.fixed +++ /dev/null @@ -1 +0,0 @@ -Map `type: "reasoning"` input items to assistant messages with `ReasoningPart` on Responses API calls. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/862.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/862.fixed deleted file mode 100644 index 24eb596e4..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/862.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop tracing `with_raw_response` calls after `uninstrument()` on a client that used them while instrumented. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/863.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/863.fixed deleted file mode 100644 index 13c4dc3d2..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/863.fixed +++ /dev/null @@ -1 +0,0 @@ -Unwrap `chat.completions.parse` when calling `OpenAIInstrumentor().uninstrument()`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/866.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/866.fixed deleted file mode 100644 index 8eec75a81..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/866.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop request extraction from raising on chat `messages=None` or a Responses input item whose `type` is not a string. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/900.added b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/900.added deleted file mode 100644 index eb7709e3d..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/900.added +++ /dev/null @@ -1 +0,0 @@ -Record `gen_ai.conversation.compacted` on Responses API spans when compaction items are present in the request input or response output. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/907.fixed b/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/907.fixed deleted file mode 100644 index 9df583051..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/.changelog/907.fixed +++ /dev/null @@ -1 +0,0 @@ -Capture refusals from streamed chat completions in the output messages. diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-openai/CHANGELOG.md index a68ae9d88..201607371 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-openai/CHANGELOG.md @@ -15,6 +15,53 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Record cache-write and audio token usage from OpenAI Chat Completions + responses and streams. + ([#681](https://github.com/open-telemetry/opentelemetry-python-genai/pull/681)) +- Instrument `Responses.parse` and `AsyncResponses.parse`, so structured-output + calls emit GenAI spans like `Responses.create`, reporting + `gen_ai.output.type` as `json` for the `text_format` argument. + ([#786](https://github.com/open-telemetry/opentelemetry-python-genai/pull/786)) +- Capture reasoning tokens - `gen_ai.usage.reasoning.output_tokens` on + Responses API calls + ([#812](https://github.com/open-telemetry/opentelemetry-python-genai/pull/812)) +- Record `gen_ai.conversation.compacted` on Responses API spans when compaction + items are present in the request input or response output. + ([#900](https://github.com/open-telemetry/opentelemetry-python-genai/pull/900)) + +### Fixed + +- Record `max_completion_tokens` as `gen_ai.request.max_tokens` on chat + completion spans, whether passed as a keyword argument or via `extra_body`. + ([#813](https://github.com/open-telemetry/opentelemetry-python-genai/pull/813)) +- Suspend the chat completion and Responses API invocations while a streamed + response is unconsumed and re-activate them only while a chunk is read or the + stream is cleaned up: the inference span is no longer current in the caller's + context between reads, so spans a caller creates between chunks are siblings + of the inference span, not children. + ([#817](https://github.com/open-telemetry/opentelemetry-python-genai/pull/817)) +- Record Responses computer calls as client tool calls and replayed results as + tool inputs. + ([#837](https://github.com/open-telemetry/opentelemetry-python-genai/pull/837)) +- Map `type: "reasoning"` input items to assistant messages with + `ReasoningPart` on Responses API calls. + ([#839](https://github.com/open-telemetry/opentelemetry-python-genai/pull/839)) +- Stop tracing `with_raw_response` calls after `uninstrument()` on a client + that used them while instrumented. + ([#862](https://github.com/open-telemetry/opentelemetry-python-genai/pull/862)) +- Unwrap `chat.completions.parse` when calling + `OpenAIInstrumentor().uninstrument()`. + ([#863](https://github.com/open-telemetry/opentelemetry-python-genai/pull/863)) +- Stop request extraction from raising on chat `messages=None` or a Responses + input item whose `type` is not a string. + ([#866](https://github.com/open-telemetry/opentelemetry-python-genai/pull/866)) +- Capture refusals from streamed chat completions in the output messages. + ([#907](https://github.com/open-telemetry/opentelemetry-python-genai/pull/907)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-openai/src/opentelemetry/instrumentation/genai/openai/version.py b/instrumentation/opentelemetry-instrumentation-genai-openai/src/opentelemetry/instrumentation/genai/openai/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-openai/src/opentelemetry/instrumentation/genai/openai/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-openai/src/opentelemetry/instrumentation/genai/openai/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-portkey/.changelog/866.fixed b/instrumentation/opentelemetry-instrumentation-genai-portkey/.changelog/866.fixed deleted file mode 100644 index 8176bb90a..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-portkey/.changelog/866.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop request extraction from raising on sampling or token parameters of the wrong type or outside float range, such as `temperature="high"`, `temperature=10**400` or `max_tokens=float("inf")`; those values are left off the span. diff --git a/instrumentation/opentelemetry-instrumentation-genai-portkey/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-portkey/CHANGELOG.md index db9cb3c79..2c3fb17b6 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-portkey/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-portkey/CHANGELOG.md @@ -15,6 +15,16 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Fixed + +- Stop request extraction from raising on sampling or token parameters of the + wrong type or outside float range, such as `temperature="high"`, + `temperature=10**400` or `max_tokens=float("inf")`; those values are left off + the span. + ([#866](https://github.com/open-telemetry/opentelemetry-python-genai/pull/866)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-genai-portkey/src/opentelemetry/instrumentation/genai/portkey/version.py b/instrumentation/opentelemetry-instrumentation-genai-portkey/src/opentelemetry/instrumentation/genai/portkey/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-portkey/src/opentelemetry/instrumentation/genai/portkey/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-portkey/src/opentelemetry/instrumentation/genai/portkey/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/821.changed deleted file mode 100644 index f362dd37b..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record tool call arguments as compact JSON and non-string results as JSON. Previously arguments were recorded as given and results through `str()`, e.g. a result of `{"temp": 20}` was recorded as `{'temp': 20}`, now `{"temp":20}`. diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/913.fixed b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/913.fixed deleted file mode 100644 index 01630f0bd..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/.changelog/913.fixed +++ /dev/null @@ -1 +0,0 @@ -Capture qwen-agent messages and content parts provided as tuples. diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/CHANGELOG.md index 6cecd17df..92d4ea12c 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/CHANGELOG.md @@ -15,6 +15,20 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Changed + +- Record tool call arguments as compact JSON and non-string results as JSON. + Previously arguments were recorded as given and results through `str()`, e.g. + a result of `{"temp": 20}` was recorded as `{'temp': 20}`, now `{"temp":20}`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) + +### Fixed + +- Capture qwen-agent messages and content parts provided as tuples. + ([#913](https://github.com/open-telemetry/opentelemetry-python-genai/pull/913)) + ## Version 1.2b0 (2026-09-24) ### Changed diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/src/opentelemetry/instrumentation/genai/qwen_agent/version.py b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/src/opentelemetry/instrumentation/genai/qwen_agent/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/src/opentelemetry/instrumentation/genai/qwen_agent/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-qwen-agent/src/opentelemetry/instrumentation/genai/qwen_agent/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/.changelog/311.added b/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/.changelog/311.added deleted file mode 100644 index 704e82d8b..000000000 --- a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/.changelog/311.added +++ /dev/null @@ -1 +0,0 @@ -Initial QwenPaw instrumentation: trace `AgentRunner.query_handler` turns as `invoke_agent` spans diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/CHANGELOG.md index 54bfa4a7d..d58289cd6 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/CHANGELOG.md @@ -14,3 +14,11 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR --> + +## Version 1.3b0 (2026-10-23) + +### Added + +- Initial QwenPaw instrumentation: trace `AgentRunner.query_handler` turns as + `invoke_agent` spans + ([#311](https://github.com/open-telemetry/opentelemetry-python-genai/pull/311)) diff --git a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/src/opentelemetry/instrumentation/genai/qwenpaw/version.py b/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/src/opentelemetry/instrumentation/genai/qwenpaw/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/src/opentelemetry/instrumentation/genai/qwenpaw/version.py +++ b/instrumentation/opentelemetry-instrumentation-genai-qwenpaw/src/opentelemetry/instrumentation/genai/qwenpaw/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/791.changed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/791.changed deleted file mode 100644 index 75a3e04ed..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/791.changed +++ /dev/null @@ -1 +0,0 @@ -Record tool-call arguments as bound parameter dictionaries serialized by the shared GenAI utility instead of custom code.function.parameters entries, preserving normalization of Pydantic models and other objects. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/811.added b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/811.added deleted file mode 100644 index 8f0246ebb..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/811.added +++ /dev/null @@ -1 +0,0 @@ -Capture `previous_interaction_id` on `interactions.create` as `gen_ai.request.previous_response.id` diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/821.changed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/821.changed deleted file mode 100644 index 3504f8e71..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -Record string tool call results as-is and drop only the arguments that cannot be converted. Previously string results were JSON-quoted, e.g. `done` was recorded as `"done"`, and one unconvertible argument dropped all arguments. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/834.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/834.fixed deleted file mode 100644 index 49713d2a0..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/834.fixed +++ /dev/null @@ -1 +0,0 @@ -Preserve tool parameter schemas supplied through ``parameters_json_schema`` in Google GenAI function declarations. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/853.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/853.fixed deleted file mode 100644 index cc09cc43c..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/853.fixed +++ /dev/null @@ -1 +0,0 @@ -Preserve method snapshots on GoogleGenAiSdkInstrumentor re-instantiation. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/861.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/861.fixed deleted file mode 100644 index 0d298d935..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/861.fixed +++ /dev/null @@ -1 +0,0 @@ -Normalize tuple contents to lists during telemetry capture to prevent instrumentation extraction errors before the SDK request. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/866.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/866.fixed deleted file mode 100644 index 8f038b2e1..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/866.fixed +++ /dev/null @@ -1 +0,0 @@ -Stop request extraction from raising on `generate_content` with missing or empty `contents`, or an `interactions.create` input item whose `type` is not a string. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/898.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/898.fixed deleted file mode 100644 index ed00e6ab7..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/898.fixed +++ /dev/null @@ -1 +0,0 @@ -Forward the caller's config unchanged when a ``GenerateContentConfig`` dict cannot be parsed, instead of replacing it with an empty config; the fallback is logged at debug level. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/899.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/899.fixed deleted file mode 100644 index 7217cd767..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/899.fixed +++ /dev/null @@ -1 +0,0 @@ -Restore caller context between Google GenAI stream reads while preserving invocation context during iteration and cleanup. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/903.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/903.fixed deleted file mode 100644 index 1d611b557..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/903.fixed +++ /dev/null @@ -1 +0,0 @@ -Log a debug record when the raw embedding response body cannot be parsed for ``usageMetadata``, instead of dropping input tokens silently. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/908.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/908.fixed deleted file mode 100644 index 76db21fea..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/908.fixed +++ /dev/null @@ -1 +0,0 @@ -Report a streamed `generate_content_stream` response as one output message per candidate instead of one per chunk. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/930.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/930.fixed deleted file mode 100644 index df6e9e925..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/930.fixed +++ /dev/null @@ -1 +0,0 @@ -Report text parts with `thought=True` as `ReasoningPart` instead of `TextPart` in `generate_content` and `generate_content_stream` messages. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/936.changed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/936.changed deleted file mode 100644 index e14450b79..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/936.changed +++ /dev/null @@ -1 +0,0 @@ -Drop unsupported interaction input items and non-text system instruction parts instead of recording them as type-only `GenericPart`. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/947.fixed b/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/947.fixed deleted file mode 100644 index a5489e361..000000000 --- a/instrumentation/opentelemetry-instrumentation-google-genai/.changelog/947.fixed +++ /dev/null @@ -1 +0,0 @@ -Record the response id, model and token usage on streamed `interactions.create` spans by matching the SDK's `interaction.completed` event. diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/CHANGELOG.md b/instrumentation/opentelemetry-instrumentation-google-genai/CHANGELOG.md index 19d47727a..07266d401 100644 --- a/instrumentation/opentelemetry-instrumentation-google-genai/CHANGELOG.md +++ b/instrumentation/opentelemetry-instrumentation-google-genai/CHANGELOG.md @@ -15,6 +15,63 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Capture `previous_interaction_id` on `interactions.create` as + `gen_ai.request.previous_response.id` + ([#811](https://github.com/open-telemetry/opentelemetry-python-genai/pull/811)) + +### Changed + +- Record tool-call arguments as bound parameter dictionaries serialized by the + shared GenAI utility instead of custom code.function.parameters entries, + preserving normalization of Pydantic models and other objects. + ([#791](https://github.com/open-telemetry/opentelemetry-python-genai/pull/791)) +- Record string tool call results as-is and drop only the arguments that cannot + be converted. Previously string results were JSON-quoted, e.g. `done` was + recorded as `"done"`, and one unconvertible argument dropped all arguments. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) +- Drop unsupported interaction input items and non-text system instruction + parts instead of recording them as type-only `GenericPart`. + ([#936](https://github.com/open-telemetry/opentelemetry-python-genai/pull/936)) + +### Fixed + +- Preserve tool parameter schemas supplied through ``parameters_json_schema`` + in Google GenAI function declarations. + ([#834](https://github.com/open-telemetry/opentelemetry-python-genai/pull/834)) +- Preserve method snapshots on GoogleGenAiSdkInstrumentor re-instantiation. + ([#853](https://github.com/open-telemetry/opentelemetry-python-genai/pull/853)) +- Normalize tuple contents to lists during telemetry capture to prevent + instrumentation extraction errors before the SDK request. + ([#861](https://github.com/open-telemetry/opentelemetry-python-genai/pull/861)) +- Stop request extraction from raising on `generate_content` with missing or + empty `contents`, or an `interactions.create` input item whose `type` is not + a string. + ([#866](https://github.com/open-telemetry/opentelemetry-python-genai/pull/866)) +- Forward the caller's config unchanged when a ``GenerateContentConfig`` dict + cannot be parsed, instead of replacing it with an empty config; the fallback + is logged at debug level. + ([#898](https://github.com/open-telemetry/opentelemetry-python-genai/pull/898)) +- Restore caller context between Google GenAI stream reads while preserving + invocation context during iteration and cleanup. + ([#899](https://github.com/open-telemetry/opentelemetry-python-genai/pull/899)) +- Log a debug record when the raw embedding response body cannot be parsed for + ``usageMetadata``, instead of dropping input tokens silently. + ([#903](https://github.com/open-telemetry/opentelemetry-python-genai/pull/903)) +- Report a streamed `generate_content_stream` response as one output message + per candidate instead of one per chunk. + ([#908](https://github.com/open-telemetry/opentelemetry-python-genai/pull/908)) +- Report text parts with `thought=True` as `ReasoningPart` instead of + `TextPart` in `generate_content` and `generate_content_stream` messages. + ([#930](https://github.com/open-telemetry/opentelemetry-python-genai/pull/930)) +- Record the response id, model and token usage on streamed + `interactions.create` spans by matching the SDK's `interaction.completed` + event. + ([#947](https://github.com/open-telemetry/opentelemetry-python-genai/pull/947)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/instrumentation/opentelemetry-instrumentation-google-genai/src/opentelemetry/instrumentation/google_genai/version.py b/instrumentation/opentelemetry-instrumentation-google-genai/src/opentelemetry/instrumentation/google_genai/version.py index 73e4228c6..dce7b4a4d 100644 --- a/instrumentation/opentelemetry-instrumentation-google-genai/src/opentelemetry/instrumentation/google_genai/version.py +++ b/instrumentation/opentelemetry-instrumentation-google-genai/src/opentelemetry/instrumentation/google_genai/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0" diff --git a/util/opentelemetry-util-genai/.changelog/765.added b/util/opentelemetry-util-genai/.changelog/765.added deleted file mode 100644 index c1efecda9..000000000 --- a/util/opentelemetry-util-genai/.changelog/765.added +++ /dev/null @@ -1 +0,0 @@ -Add SuppressedInferenceInvocation to deduplicate nested inference operations and propagate context attributes. diff --git a/util/opentelemetry-util-genai/.changelog/776.added b/util/opentelemetry-util-genai/.changelog/776.added deleted file mode 100644 index be56138ab..000000000 --- a/util/opentelemetry-util-genai/.changelog/776.added +++ /dev/null @@ -1 +0,0 @@ -Support RetrievalDocument models on RetrievalInvocation.documents and finalize abandoned streams. diff --git a/util/opentelemetry-util-genai/.changelog/817.added b/util/opentelemetry-util-genai/.changelog/817.added deleted file mode 100644 index 2e4f3bc1d..000000000 --- a/util/opentelemetry-util-genai/.changelog/817.added +++ /dev/null @@ -1 +0,0 @@ -Stream wrappers make a suspended invocation current only while a chunk is read or the stream is cleaned up. diff --git a/util/opentelemetry-util-genai/.changelog/821.added b/util/opentelemetry-util-genai/.changelog/821.added deleted file mode 100644 index 5d699bdf9..000000000 --- a/util/opentelemetry-util-genai/.changelog/821.added +++ /dev/null @@ -1 +0,0 @@ -Add `object_to_any_value` and `tool_arguments_to_any_value` to convert arbitrary objects (models, dataclasses, datetimes, UUIDs, enums, objects with a custom `__str__`) into OpenTelemetry `AnyValue`, dropping values that cannot be converted. For example, `object_to_any_value({"when": date(2026, 1, 1), "cb": print})` returns `{"when": "2026-01-01"}`. diff --git a/util/opentelemetry-util-genai/.changelog/821.changed b/util/opentelemetry-util-genai/.changelog/821.changed deleted file mode 100644 index 345c6aadf..000000000 --- a/util/opentelemetry-util-genai/.changelog/821.changed +++ /dev/null @@ -1 +0,0 @@ -`ToolInvocation` always records non-string arguments and results as JSON strings and converts objects that are not JSON-serializable through `object_to_any_value`; previously primitives were recorded as-is and other objects through `str()`, e.g. `arguments = 42` was recorded as `42`, now `"42"`. Prompt variables set to `None` are no longer recorded; previously they were recorded as `"null"`. diff --git a/util/opentelemetry-util-genai/.changelog/823.removed b/util/opentelemetry-util-genai/.changelog/823.removed deleted file mode 100644 index 1beb4b224..000000000 --- a/util/opentelemetry-util-genai/.changelog/823.removed +++ /dev/null @@ -1 +0,0 @@ -Remove the deprecated GenAI utility callables ``should_emit_event()``, ``should_capture_content_on_spans()``, ``TelemetryHandler.start_inference()``, ``TelemetryHandler.start_llm()``, ``TelemetryHandler.start_embedding()``, ``TelemetryHandler.start_tool()``, ``TelemetryHandler.start_workflow()``, ``TelemetryHandler.stop_llm()``, ``TelemetryHandler.fail_llm()``, ``TelemetryHandler.start_invoke_local_agent()``, ``TelemetryHandler.start_invoke_remote_agent()``, and ``ToolInvocation.should_capture_content_on_span diff --git a/util/opentelemetry-util-genai/.changelog/859.added b/util/opentelemetry-util-genai/.changelog/859.added deleted file mode 100644 index 31bce466e..000000000 --- a/util/opentelemetry-util-genai/.changelog/859.added +++ /dev/null @@ -1 +0,0 @@ -Add context data propagation and nested operation suppression across GenAI invocations. diff --git a/util/opentelemetry-util-genai/.changelog/873.added b/util/opentelemetry-util-genai/.changelog/873.added deleted file mode 100644 index 71aa926f4..000000000 --- a/util/opentelemetry-util-genai/.changelog/873.added +++ /dev/null @@ -1 +0,0 @@ -Add IteratorCapture to observe nested request iterators lazily and expose snapshots for telemetry extraction. diff --git a/util/opentelemetry-util-genai/.changelog/889.fixed b/util/opentelemetry-util-genai/.changelog/889.fixed deleted file mode 100644 index 98a1c3d6e..000000000 --- a/util/opentelemetry-util-genai/.changelog/889.fixed +++ /dev/null @@ -1 +0,0 @@ -Treat a queue size below 1 for `OTEL_INSTRUMENTATION_GENAI_UPLOAD_MAX_QUEUE_SIZE` as invalid and fall back to the default instead of disabling uploads. diff --git a/util/opentelemetry-util-genai/.changelog/891.fixed b/util/opentelemetry-util-genai/.changelog/891.fixed deleted file mode 100644 index 36646eae0..000000000 --- a/util/opentelemetry-util-genai/.changelog/891.fixed +++ /dev/null @@ -1 +0,0 @@ -Log a warning instead of falling back silently to a no-op hook when `OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK` names a hook that cannot be loaded. diff --git a/util/opentelemetry-util-genai/.changelog/936.deprecated b/util/opentelemetry-util-genai/.changelog/936.deprecated deleted file mode 100644 index d1911bab3..000000000 --- a/util/opentelemetry-util-genai/.changelog/936.deprecated +++ /dev/null @@ -1 +0,0 @@ -Deprecate `GenericPart`; instrumentations should use a specific part type or drop the content. diff --git a/util/opentelemetry-util-genai/.changelog/961.changed b/util/opentelemetry-util-genai/.changelog/961.changed deleted file mode 100644 index 031fa15c5..000000000 --- a/util/opentelemetry-util-genai/.changelog/961.changed +++ /dev/null @@ -1 +0,0 @@ -Raise the minimum `fsspec` version in the `upload` extra to `2026.6.0` to pick up a security fix. diff --git a/util/opentelemetry-util-genai/CHANGELOG.md b/util/opentelemetry-util-genai/CHANGELOG.md index eb3128300..1a5a7d0a9 100644 --- a/util/opentelemetry-util-genai/CHANGELOG.md +++ b/util/opentelemetry-util-genai/CHANGELOG.md @@ -15,6 +15,75 @@ See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTR +## Version 1.3b0 (2026-10-23) + +### Added + +- Add SuppressedInferenceInvocation to deduplicate nested inference operations + and propagate context attributes. + ([#765](https://github.com/open-telemetry/opentelemetry-python-genai/pull/765)) +- Support RetrievalDocument models on RetrievalInvocation.documents and + finalize abandoned streams. + ([#776](https://github.com/open-telemetry/opentelemetry-python-genai/pull/776)) +- Add `object_to_any_value` and `tool_arguments_to_any_value` to convert + arbitrary objects (models, dataclasses, datetimes, UUIDs, enums, objects with + a custom `__str__`) into OpenTelemetry `AnyValue`, dropping values that + cannot be converted. For example, `object_to_any_value({"when": date(2026, 1, + 1), "cb": print})` returns `{"when": "2026-01-01"}`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) +- Add context data propagation and nested operation suppression across GenAI + invocations. + ([#859](https://github.com/open-telemetry/opentelemetry-python-genai/pull/859)) +- Add IteratorCapture to observe nested request iterators lazily and expose + snapshots for telemetry extraction. + ([#873](https://github.com/open-telemetry/opentelemetry-python-genai/pull/873)) + +### Changed + +- Stream wrappers make a suspended invocation current only while a chunk is + read or the stream is cleaned up. + ([#817](https://github.com/open-telemetry/opentelemetry-python-genai/pull/817)) +- `ToolInvocation` always records non-string arguments and results as JSON + strings and converts objects that are not JSON-serializable through + `object_to_any_value`; previously primitives were recorded as-is and other + objects through `str()`, e.g. `arguments = 42` was recorded as `42`, now + `"42"`. Prompt variables set to `None` are no longer recorded; previously + they were recorded as `"null"`. + ([#821](https://github.com/open-telemetry/opentelemetry-python-genai/pull/821)) +- Raise the minimum `fsspec` version in the `upload` extra to `2026.6.0` to + pick up a security fix. + ([#961](https://github.com/open-telemetry/opentelemetry-python-genai/pull/961)) + +### Deprecated + +- Deprecate `GenericPart`; instrumentations should use a specific part type or + drop the content. + ([#936](https://github.com/open-telemetry/opentelemetry-python-genai/pull/936)) + +### Removed + +- Remove the deprecated GenAI utility callables ``should_emit_event()``, + ``should_capture_content_on_spans()``, + ``TelemetryHandler.start_inference()``, ``TelemetryHandler.start_llm()``, + ``TelemetryHandler.start_embedding()``, ``TelemetryHandler.start_tool()``, + ``TelemetryHandler.start_workflow()``, ``TelemetryHandler.stop_llm()``, + ``TelemetryHandler.fail_llm()``, + ``TelemetryHandler.start_invoke_local_agent()``, + ``TelemetryHandler.start_invoke_remote_agent()``, and + ``ToolInvocation.should_capture_content_on_span()``. + ([#823](https://github.com/open-telemetry/opentelemetry-python-genai/pull/823)) + +### Fixed + +- Treat a queue size below 1 for + `OTEL_INSTRUMENTATION_GENAI_UPLOAD_MAX_QUEUE_SIZE` as invalid and fall back + to the default instead of disabling uploads. + ([#889](https://github.com/open-telemetry/opentelemetry-python-genai/pull/889)) +- Log a warning instead of falling back silently to a no-op hook when + `OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK` names a hook that cannot be + loaded. + ([#891](https://github.com/open-telemetry/opentelemetry-python-genai/pull/891)) + ## Version 1.2b0 (2026-09-24) ### Added diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/version.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/version.py index 73e4228c6..dce7b4a4d 100644 --- a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/version.py +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/version.py @@ -1,4 +1,4 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.3b0.dev" +__version__ = "1.3b0"