Skip to content
Merged
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
24 changes: 12 additions & 12 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased

### Added

- Add `BaggageLogProcessor` to `opentelemetry-processor-baggage`
([#4371](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4371))

- `opentelemetry-instrumentation-system-metrics`: Add support for `process.disk.io` metric in system-metrics instrumentation
([#4397](https://github.com/open-telemetry/opentelemetry-python-contrib/issues/4397))
([#4397](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4397))
- Switch to SPDX license headers and add CI enforcement
([#4533](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4533))
- Bump `pylint` to `4.0.5`
Expand All @@ -31,6 +31,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#3839](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3839))
- `opentelemetry-exporter-richconsole`: Add support for suppressing resource information
([#3898](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3898))
- `opentelemetry-instrumentation`: Add experimental metrics attributes Labeler utility
([#4288](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4288))

### Fixed

Expand All @@ -48,11 +50,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#3896](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3896))
- Refactor unit tests to allow for population of the random trace id flag in the `traceparent` header
([#4030](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4030))
- `opentelemetry-instrumentation-fastapi`: Fix `FastAPI` instrumentation to correctly trace `BackgroundTasks` by wrapping their execution in a dedicated span, ensuring proper parent-child relationships and accurate trace timing
([#4368](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4368))
- `opentelemetry-instrumentation-celery`: Coerce timelimit values to strings in `set_attributes_from_context()` to prevent mixed-type span attribute warning
([#4361](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4361))

### Breaking changes

- Drop Python 3.9 support
([#4412](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4412))
- `opentelemetry-instrumentation-logging`: Use `LogRecord.getMessage()` to format and extract each log record's body text to more closely match the expected usage of the logging system. As a result, all OTel log record bodies are now always strings.
Previously, if `LogRecord.msg` (which contains the format string) was set to a non-string object (e.g. `logger.warning(some_dict)`), the object was exported as-is to the OTLP body field. Now, `LogRecord.getMessage()` will convert it to to a string.
If you are passing in non-strings as the format string argument and your backend is expecting them as-is, you will need to update accordingly.
([#4372](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4372))

## Version 1.41.0/0.62b0 (2026-04-09)

Expand All @@ -72,13 +82,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#4049](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4049))
- `opentelemetry-instrumentation-sqlalchemy`: implement new semantic convention opt-in migration
([#4110](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4110))
- `opentelemetry-instrumentation`: Add experimental metrics attributes Labeler utility
([#4288](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4288))

### Fixed

- `opentelemetry-instrumentation-celery`: Coerce timelimit values to strings in `set_attributes_from_context()` to prevent mixed-type span attribute warning
([#4361](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4361))
- `opentelemetry-docker-tests`: Replace deprecated `SpanAttributes` from `opentelemetry.semconv.trace` with `opentelemetry.semconv._incubating.attributes`
([#4339](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4339))
- `opentelemetry-instrumentation-confluent-kafka`: Skip `recv` span creation when `poll()` returns no message or `consume()` returns an empty list, avoiding empty spans on idle polls
Expand All @@ -93,8 +99,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#4302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4302))
- `opentelemetry-instrumentation-grpc`: Fix bidirectional streaming RPCs raising `AttributeError: 'generator' object has no attribute 'add_done_callback'`
([#4259](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4259))
- `opentelemetry-instrumentation-fastapi`: Fix `FastAPI` instrumentation to correctly trace `BackgroundTasks` by wrapping their execution in a dedicated span, ensuring proper parent-child relationships and accurate trace timing
([#4368](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4368))
- `opentelemetry-instrumentation-aiokafka`: fix `Unclosed AIOKafkaProducer` warning and `RuntimeWarning: coroutine was never awaited` in tests
([#4384](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4384))
- `opentelemetry-instrumentation-aiokafka`: Fix compatibility with aiokafka 0.13 by calling
Expand All @@ -106,10 +110,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- `opentelemetry-instrumentation-boto`: Remove instrumentation
([#4303](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4303))
- `opentelemetry-instrumentation-logging`: Use `LogRecord.getMessage()` to format and extract each log record's body text to more closely match the expected usage of the logging system. As a result, all OTel log record bodies are now always strings.
Previously, if `LogRecord.msg` (which contains the format string) was set to a non-string object (e.g. `logger.warning(some_dict)`), the object was exported as-is to the OTLP body field. Now, `LogRecord.getMessage()` will convert it to to a string.
If you are passing in non-strings as the format string argument and your backend is expecting them as-is, you will need to update accordingly.
([#4372](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4372))

## Version 1.40.0/0.61b0 (2026-03-04)

Expand Down
Loading