Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Add async Anthropic message stream wrappers and manager wrappers, with wrapper tests ([#4346](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4346))
- `AsyncMessagesStreamWrapper` for async message stream telemetry
- `AsyncMessagesStreamManagerWrapper` for async `Messages.stream()` telemetry
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Initial implementation of Anthropic instrumentation ([#3978](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3978))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add instrumentation for Anthropic `Messages.stream()` helper method ([#4499](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4499))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Implement sync `Messages.create` instrumentation with GenAI semantic convention attributes ([#4034](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4034))
- Captures request attributes: `gen_ai.request.model`, `gen_ai.request.max_tokens`, `gen_ai.request.temperature`, `gen_ai.request.top_p`, `gen_ai.request.top_k`, `gen_ai.request.stop_sequences`
- Captures response attributes: `gen_ai.response.id`, `gen_ai.response.model`, `gen_ai.response.finish_reasons`, `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`
- Error handling with `error.type` attribute
- Minimum supported anthropic version is 0.16.0 (SDK uses modern `anthropic.resources.messages` module structure introduced in this version)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Add sync streaming support for `Messages.create(stream=True)` and `Messages.stream()` ([#4155](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4155))
- `StreamWrapper` for handling `Messages.create(stream=True)` telemetry
- `MessageStreamManagerWrapper` for handling `Messages.stream()` telemetry
- `MessageWrapper` for non-streaming response telemetry extraction
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update `opentelemetry-util-genai` dependency range to `>= 0.4b0.dev, <0.5b0` ([#4520](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4520))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix compatibility with wrapt 2.x by using positional arguments in `wrap_function_wrapper()` calls ([#4445](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4445))
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,7 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

- Update `opentelemetry-util-genai` dependency range to `>= 0.4b0.dev, <0.5b0`
([#4520](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4520))
- Fix compatibility with wrapt 2.x by using positional arguments in `wrap_function_wrapper()` calls
([#4445](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4445))

### Added

- Add instrumentation for Anthropic `Messages.stream()` helper method
([#4499](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4499))
- Add async Anthropic message stream wrappers and manager wrappers, with wrapper
tests ([#4346](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4346))
- `AsyncMessagesStreamWrapper` for async message stream telemetry
- `AsyncMessagesStreamManagerWrapper` for async `Messages.stream()` telemetry
- Add sync streaming support for `Messages.create(stream=True)` and `Messages.stream()`
([#4155](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4155))
- `StreamWrapper` for handling `Messages.create(stream=True)` telemetry
- `MessageStreamManagerWrapper` for handling `Messages.stream()` telemetry
- `MessageWrapper` for non-streaming response telemetry extraction
- Initial implementation of Anthropic instrumentation
([#3978](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3978))
- Implement sync `Messages.create` instrumentation with GenAI semantic convention attributes
([#4034](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4034))
- Captures request attributes: `gen_ai.request.model`, `gen_ai.request.max_tokens`, `gen_ai.request.temperature`, `gen_ai.request.top_p`, `gen_ai.request.top_k`, `gen_ai.request.stop_sequences`
- Captures response attributes: `gen_ai.response.id`, `gen_ai.response.model`, `gen_ai.response.finish_reasons`, `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`
- Error handling with `error.type` attribute
- Minimum supported anthropic version is 0.16.0 (SDK uses modern `anthropic.resources.messages` module structure introduced in this version)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update `opentelemetry-util-genai` dependency range to `>= 0.4b0.dev, <0.5b0` ([#4520](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4520))
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,8 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

- Update `opentelemetry-util-genai` dependency range to `>= 0.4b0.dev, <0.5b0`
([#4520](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4520))

### Added

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added support to call genai utils handler for langchain LLM invocations. ([#3889](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3889))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added span support for genAI langchain llm invocation. ([#3665](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3665))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added log and metrics provider to langchain genai utils handler ([#4214](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4214))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix compatibility with wrapt 2.x by using positional arguments in `wrap_function_wrapper()` calls ([#4445](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4445))
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,7 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

- Fix compatibility with wrapt 2.x by using positional arguments in `wrap_function_wrapper()` calls
([#4445](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4445))
- Added span support for genAI langchain llm invocation.
([#3665](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3665))
- Added support to call genai utils handler for langchain LLM invocations.
([#3889](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3889))
- Added log and metrics provider to langchain genai utils handler
([#4214](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4214))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Align AgentSpanData test stubs and span processor with real OpenAI Agents SDK; remove non-existent `operation`, `description`, `agent_id`, and `model` fields. ([#4229](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4229))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Document official package metadata and README for the OpenAI Agents instrumentation. ([#3859](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3859))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Populate instructions and tool definitions from Response obj. ([#4196](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4196))
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,11 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased
- Align AgentSpanData test stubs and span processor with real OpenAI Agents SDK;
remove non-existent `operation`, `description`, `agent_id`, and `model` fields.
([#4229](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4229))
- Document official package metadata and README for the OpenAI Agents instrumentation.
([#3859](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3859))
- Populate instructions and tool definitions from Response obj.
([#4196](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4196))

## Version 0.1.0 (2025-10-15)

- Initial barebones package skeleton: minimal instrumentor stub, version module,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Refactor chat completion stream wrappers to use shared GenAI stream lifecycle helpers. ([#4500](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4500))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Pass tool definitions from `tools` kwarg to `InferenceInvocation.tool_definitions` so `gen_ai.tool.definitions` span attribute is populated on chat completion spans ([#4554](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4554))
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,11 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

- Refactor chat completion stream wrappers to use shared GenAI stream lifecycle helpers.
([#4500](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4500))
- Pass tool definitions from `tools` kwarg to `InferenceInvocation.tool_definitions`
so `gen_ai.tool.definitions` span attribute is populated on chat completion spans
([#4554](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4554))

## Version 2.4b0 (2026-05-01)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,7 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased
<!-- changelog start -->
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `gen_ai.usage.cache_read.input_tokens` attribute to capture cached tokens on spans/events when the experimental sem conv flag is set. ([#4313](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4313))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `gen_ai.usage.reasoning.output_tokens` attribute to capture thinking tokens on spans/events when the experimental sem conv flag is set. Add thinking tokens to output tokens. ([#4313](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4313))
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,11 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

-Add `gen_ai.usage.reasoning.output_tokens` attribute to capture thinking tokens on spans/events when the experimental sem conv flag is set. Add thinking tokens to output tokens. ([#4313](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4313))
-Add `gen_ai.usage.cache_read.input_tokens` attribute to capture cached tokens on spans/events when the experimental sem conv flag is set. ([#4313](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4313))

## Version 0.7b0 (2026-02-20)
- Fix bug in how tokens are counted when using the streaming `generateContent` method. ([#4152](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4152)).
- Add `gen_ai.tool.definitions` attribute to `gen_ai.client.inference.operation.details` log event ([#4142](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4142)).
Expand Down
4 changes: 2 additions & 2 deletions scripts/changelog_template.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
{% for text, values in sections[section][category].items() %}
{% if "\n - " in text or '\n * ' in text %}
{%- set main_text, sub_items = text.split('\n', 1) %}
- {{ main_text }} ({{ values|join(', ') }})
- {{ main_text }}{% if values %} ({{ values|join(', ') }}){% endif +%}
Comment thread
lmolkova marked this conversation as resolved.
{% if sub_items %}
{{- sub_items }}
{% endif %}
{% else %}
- {{ text }} ({{ values|join(', ') }})
- {{ text }}{% if values %} ({{ values|join(', ') }}){% endif +%}
{% endif %}
{% endfor %}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Minor code cleanup and changes in preparation of moving google's GenAI instrumentation library to use this util library ([#4556](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4556))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Change `InferenceInvocation` init params to only accept base params
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Apply attribute for sampling on instantiation of all invocation types. ([#4553](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4553))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Pass in `attributes` on invocation `_start` so samplers have access to attributes. ([#4538](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4538))
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add shared sync and async stream wrapper base classes for GenAI instrumentations. ([#4500](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4500))
15 changes: 0 additions & 15 deletions util/opentelemetry-util-genai/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,11 @@ Do *NOT* add changelog entries here!

This changelog is managed by towncrier and is compiled at release time.

The static "## Unreleased" section below pre-dates towncrier; its entries
must be folded into the first towncrier-generated release manually.

See https://github.com/open-telemetry/opentelemetry-python-genai/blob/main/CONTRIBUTING.md#changelog for details.
-->

<!-- changelog start -->

## Unreleased

- Add shared sync and async stream wrapper base classes for GenAI instrumentations.
([#4500](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4500))
- Change `InferenceInvocation` init params to only accept base params
- Pass in `attributes` on invocation `_start` so samplers have access to attributes.
([#4538](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4538))
- Apply attribute for sampling on instantiation of all invocation types.
([#4553](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4553))
- Minor code cleanup and changes in preparation of moving google's GenAI instrumentation
library to use this util library ([#4556](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4556))

## Version 0.4b0 (2026-05-01)

- Add `AgentInvocation` type with `invoke_agent` span lifecycle
Expand Down