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
120 changes: 120 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,126 @@

## Unreleased

### ⚠️ Breaking Changes

- AWS SDK 2.x attributes updated to align with semantic conventions
([#15028](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15028))
- The following attributes have been renamed:
- `aws.bucket.name` (S3) → `aws.s3.bucket`
- `aws.queue.url` (SQS) → `aws.sqs.queue.url`
- `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`
- `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`
- `aws.dynamodb.provisioned_throughput.read_capacity_units` → `aws.dynamodb.provisioned_read_capacity` (type changed from long to double)
- `aws.dynamodb.provisioned_throughput.write_capacity_units` → `aws.dynamodb.provisioned_write_capacity` (type changed from long to double)
- `aws.dynamodb.exclusive_start_table_name` → `aws.dynamodb.exclusive_start_table`
- `aws.dynamodb.projection_expression` → `aws.dynamodb.projection`
- `aws.dynamodb.scan_index_forward` → `aws.dynamodb.scan_forward`
- The following attribute types have changed:
- `aws.dynamodb.table_names`: string → string[]
- `aws.dynamodb.consumed_capacity`: string → string[]
- `aws.dynamodb.global_secondary_indexes`: string → string[]
- `aws.dynamodb.local_secondary_indexes`: string → string[]
- `aws.dynamodb.consistent_read`: string → boolean
- `aws.dynamodb.table_count`: string → long
- `aws.dynamodb.limit`: string → long
- `aws.dynamodb.attributes_to_get`: string → string[]
- `aws.dynamodb.segment`: string → long
- `aws.dynamodb.total_segments`: string → long
- `aws.dynamodb.count`: string → long
- `aws.dynamodb.scanned_count`: string → long
- The following attributes are no longer emitted by default but can be enabled with
`otel.instrumentation.aws-sdk.experimental-span-attributes=true`:
- `aws.queue.name` (SQS)
- `aws.lambda.function.name` (Lambda)
- `aws.lambda.function.arn` (Lambda)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this list doesn't include the ones where just the type changed. If I remember correctly aws sdk used to emit all request type attributes by default and response ones only with the experimental flag.
aws.dynamodb.table_names type change from string -> string[]
experimental aws.dynamodb.consumed_capacity type change from string -> string[]
aws.dynamodb.global_secondary_indexes type change from string -> string[]
aws.dynamodb.local_secondary_indexes type change from string -> string[]
aws.dynamodb.consistent_read type change from string -> boolean
aws.dynamodb.table_count type change from string -> long
aws.dynamodb.limit type change from string -> long
aws.dynamodb.attributes_to_get type change from string -> string[]
aws.dynamodb.segment type change from string -> long
aws.dynamodb.total_segments type change from string -> long
experimental aws.dynamodb.count type change from string -> long
experimental aws.dynamodb.scanned_count type change from string -> long

- JDBC library data source instrumentation now disabled by default
([#15074](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15074))
- JMX state metrics unit changed from empty string to `1` to align with semantic conventions
([#15093](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15093))
- AWS SDK 1.x attributes updated to align with semantic conventions
([#15094](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15094))
- Only affects users with `otel.instrumentation.aws-sdk.experimental-span-attributes=true`
- The following attributes have been renamed and are now emitted by default (no experimental flag required):
- `aws.bucket.name` (S3) → `aws.s3.bucket`
- `aws.queue.url` (SQS) → `aws.sqs.queue.url`
- `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`
- `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`
- Finatra controller spans now disabled by default to match other controller spans
([#15118](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15118))
- Netty HTTP request wrapper class renamed from HttpRequestAndChannel to NettyRequest
([#15247](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15247))
- JSP compile spans now disabled by default to match other view spans
([#15261](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15261))

### 🚫 Deprecations

- TracingConsumerInterceptor and TracingProducerInterceptor deprecated in favor of new configurable interceptors
([#14929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14929))
- Various builder methods updated to use UnaryOperator<X> instead of Function<X, X>
([#15101](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15101))
- DbClientCommonAttributesGetter deprecated in favor of DbClientAttributesGetter
([#15139](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15139))

### 🌟 New javaagent instrumentation

- Add JFinal instrumentation
([#15216](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15216))

### 📈 Enhancements

- Avoid Unsafe usage on Java 23+
([#14855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14855),
[#15091](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15091))
- Update Azure SDK instrumentation so `az.namespace` can be used for sampling
([#15068](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15068))
- Spring Boot Starter: Add cache to reduce environment variable lookups
([#15132](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15132))
- HTTP instrumentations now emit semantic convention schema URL
([#15144](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15144))
- Added instrumentation support for AsyncHttpClient version 1.8
([#15195](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15195))
- Instrumenter customizer now receives instrumentation type
([#15227](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15227))
- Added support for Spring Framework 7.0
([#15287](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15287),
[#15299](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15299),
[#15301](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15301),
[#15304](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15304),
[#15311](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15311),
[#15362](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15362),
[#15371](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15371))
- Added span status customizer to incubating InstrumenterCustomizer API
([#15288](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15288))
- Added configuration options for sqlcommenter
([#15169](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15169))
- GraphQL instrumentation now records data fetcher errors
([#15289](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15289))
- Add http client url template customizer
([#15217](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15217))
- Introduce idiomatic `JmxTelemetry` API for JMX metrics library
([#15220](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15220))
- Add instrumentation for OpenTelemetry API incubator's `ExtendedOpenTelemetry`
([#15178](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15178))

### 🛠️ Bug fixes

- Fix missing `peer.service` in Netty HTTP spans
([#14963](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14963))
- Fix Couchbase span kind to be `CLIENT` instead of `INTERNAL`
([#14995](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14995))
- Link attributes are now bridged to the Java agent when using OpenTelemetry API
([#15143](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15143))
- Potential race condition in JFR runtime metrics initialization fixed
([#15231](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15231))
- Regression fixed related to context propagation when using Spring `@EnableAsync`
([#15249](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15249))
- Declarative configuration now uses snake_case for distro resource provider attribute name
([#15260](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15260))
- Logback appender fixed to capture Logstash `StructuredArguments.entries()`
([#15341](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15341))
- Fix context propagation in Spring WebFlux 7.0 client reactive callbacks
([#15336](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15336))

## Version 2.21.0 (2025-10-17)

## ⚠️ Breaking Changes
Expand Down
Loading