|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
| 5 | +### ⚠️ Breaking Changes |
| 6 | + |
| 7 | +- AWS SDK 2.x attributes updated to align with semantic conventions |
| 8 | + ([#15028](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15028)) |
| 9 | + - The following attributes have been renamed: |
| 10 | + - `aws.bucket.name` (S3) → `aws.s3.bucket` |
| 11 | + - `aws.queue.url` (SQS) → `aws.sqs.queue.url` |
| 12 | + - `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name` |
| 13 | + - `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names` |
| 14 | + - `aws.dynamodb.provisioned_throughput.read_capacity_units` → `aws.dynamodb.provisioned_read_capacity` (type changed from long to double) |
| 15 | + - `aws.dynamodb.provisioned_throughput.write_capacity_units` → `aws.dynamodb.provisioned_write_capacity` (type changed from long to double) |
| 16 | + - `aws.dynamodb.exclusive_start_table_name` → `aws.dynamodb.exclusive_start_table` |
| 17 | + - `aws.dynamodb.projection_expression` → `aws.dynamodb.projection` |
| 18 | + - `aws.dynamodb.scan_index_forward` → `aws.dynamodb.scan_forward` |
| 19 | + - The following attribute types have changed: |
| 20 | + - `aws.dynamodb.table_names`: string → string[] |
| 21 | + - `aws.dynamodb.consumed_capacity`: string → string[] |
| 22 | + - `aws.dynamodb.global_secondary_indexes`: string → string[] |
| 23 | + - `aws.dynamodb.local_secondary_indexes`: string → string[] |
| 24 | + - `aws.dynamodb.consistent_read`: string → boolean |
| 25 | + - `aws.dynamodb.table_count`: string → long |
| 26 | + - `aws.dynamodb.limit`: string → long |
| 27 | + - `aws.dynamodb.attributes_to_get`: string → string[] |
| 28 | + - `aws.dynamodb.segment`: string → long |
| 29 | + - `aws.dynamodb.total_segments`: string → long |
| 30 | + - `aws.dynamodb.count`: string → long |
| 31 | + - `aws.dynamodb.scanned_count`: string → long |
| 32 | + - The following attributes are no longer emitted by default but can be enabled with |
| 33 | + `otel.instrumentation.aws-sdk.experimental-span-attributes=true`: |
| 34 | + - `aws.queue.name` (SQS) |
| 35 | + - `aws.lambda.function.name` (Lambda) |
| 36 | + - `aws.lambda.function.arn` (Lambda) |
| 37 | +- JDBC library data source instrumentation now disabled by default |
| 38 | + ([#15074](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15074)) |
| 39 | +- JMX state metrics unit changed from empty string to `1` to align with semantic conventions |
| 40 | + ([#15093](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15093)) |
| 41 | +- AWS SDK 1.x attributes updated to align with semantic conventions |
| 42 | + ([#15094](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15094)) |
| 43 | + - Only affects users with `otel.instrumentation.aws-sdk.experimental-span-attributes=true` |
| 44 | + - The following attributes have been renamed and are now emitted by default (no experimental flag required): |
| 45 | + - `aws.bucket.name` (S3) → `aws.s3.bucket` |
| 46 | + - `aws.queue.url` (SQS) → `aws.sqs.queue.url` |
| 47 | + - `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name` |
| 48 | + - `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names` |
| 49 | +- Finatra controller spans now disabled by default to match other controller spans |
| 50 | + ([#15118](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15118)) |
| 51 | +- Netty HTTP request wrapper class renamed from HttpRequestAndChannel to NettyRequest |
| 52 | + ([#15247](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15247)) |
| 53 | +- JSP compile spans now disabled by default to match other view spans |
| 54 | + ([#15261](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15261)) |
| 55 | + |
| 56 | +### 🚫 Deprecations |
| 57 | + |
| 58 | +- TracingConsumerInterceptor and TracingProducerInterceptor deprecated in favor of new configurable interceptors |
| 59 | + ([#14929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14929)) |
| 60 | +- Various builder methods updated to use UnaryOperator<X> instead of Function<X, X> |
| 61 | + ([#15101](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15101)) |
| 62 | +- DbClientCommonAttributesGetter deprecated in favor of DbClientAttributesGetter |
| 63 | + ([#15139](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15139)) |
| 64 | + |
| 65 | +### 🌟 New javaagent instrumentation |
| 66 | + |
| 67 | +- Add JFinal instrumentation |
| 68 | + ([#15216](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15216)) |
| 69 | + |
| 70 | +### 📈 Enhancements |
| 71 | + |
| 72 | +- Avoid Unsafe usage on Java 23+ |
| 73 | + ([#14855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14855), |
| 74 | + [#15091](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15091)) |
| 75 | +- Update Azure SDK instrumentation so `az.namespace` can be used for sampling |
| 76 | + ([#15068](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15068)) |
| 77 | +- Spring Boot Starter: Add cache to reduce environment variable lookups |
| 78 | + ([#15132](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15132)) |
| 79 | +- HTTP instrumentations now emit semantic convention schema URL |
| 80 | + ([#15144](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15144)) |
| 81 | +- Added instrumentation support for AsyncHttpClient version 1.8 |
| 82 | + ([#15195](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15195)) |
| 83 | +- Instrumenter customizer now receives instrumentation type |
| 84 | + ([#15227](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15227)) |
| 85 | +- Added support for Spring Framework 7.0 |
| 86 | + ([#15287](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15287), |
| 87 | + [#15299](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15299), |
| 88 | + [#15301](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15301), |
| 89 | + [#15304](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15304), |
| 90 | + [#15311](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15311), |
| 91 | + [#15362](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15362), |
| 92 | + [#15371](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15371)) |
| 93 | +- Added span status customizer to incubating InstrumenterCustomizer API |
| 94 | + ([#15288](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15288)) |
| 95 | +- Added configuration options for sqlcommenter |
| 96 | + ([#15169](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15169)) |
| 97 | +- GraphQL instrumentation now records data fetcher errors |
| 98 | + ([#15289](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15289)) |
| 99 | +- Add http client url template customizer |
| 100 | + ([#15217](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15217)) |
| 101 | +- Introduce idiomatic `JmxTelemetry` API for JMX metrics library |
| 102 | + ([#15220](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15220)) |
| 103 | +- Add instrumentation for OpenTelemetry API incubator's `ExtendedOpenTelemetry` |
| 104 | + ([#15178](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15178)) |
| 105 | + |
| 106 | +### 🛠️ Bug fixes |
| 107 | + |
| 108 | +- Fix missing `peer.service` in Netty HTTP spans |
| 109 | + ([#14963](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14963)) |
| 110 | +- Fix Couchbase span kind to be `CLIENT` instead of `INTERNAL` |
| 111 | + ([#14995](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14995)) |
| 112 | +- Link attributes are now bridged to the Java agent when using OpenTelemetry API |
| 113 | + ([#15143](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15143)) |
| 114 | +- Potential race condition in JFR runtime metrics initialization fixed |
| 115 | + ([#15231](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15231)) |
| 116 | +- Regression fixed related to context propagation when using Spring `@EnableAsync` |
| 117 | + ([#15249](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15249)) |
| 118 | +- Declarative configuration now uses snake_case for distro resource provider attribute name |
| 119 | + ([#15260](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15260)) |
| 120 | +- Logback appender fixed to capture Logstash `StructuredArguments.entries()` |
| 121 | + ([#15341](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15341)) |
| 122 | +- Fix context propagation in Spring WebFlux 7.0 client reactive callbacks |
| 123 | + ([#15336](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15336)) |
| 124 | + |
5 | 125 | ## Version 2.21.0 (2025-10-17) |
6 | 126 |
|
7 | 127 | ## ⚠️ Breaking Changes |
|
0 commit comments