This release targets the OpenTelemetry SDK 1.56.0.
Note that many artifacts have the -alpha suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
⚠️ Breaking Changes
- AWS SDK 2.x attributes updated to align with semantic conventions (#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 withotel.instrumentation.aws-sdk.experimental-span-attributes=true: -aws.queue.name(SQS) -aws.lambda.function.name(Lambda) -aws.lambda.function.arn(Lambda) - JDBC library data source instrumentation now disabled by default (#15074)
- JMX state metrics unit changed from empty string to
1to align with semantic conventions (#15093) - AWS SDK 1.x attributes updated to align with semantic conventions (#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)
- Netty HTTP request wrapper class renamed from HttpRequestAndChannel to NettyRequest (#15247)
- JSP compile spans now disabled by default to match other view spans (#15261)
🚫 Deprecations
- TracingConsumerInterceptor and TracingProducerInterceptor deprecated in favor of new configurable interceptors (#14929)
- Various builder methods updated to use UnaryOperator instead of Function<X, X> (#15101)
- DbClientCommonAttributesGetter deprecated in favor of DbClientAttributesGetter (#15139)
🌟 New javaagent instrumentation
- Add JFinal instrumentation (#15216)
📈 Enhancements
- Avoid Unsafe usage on Java 23+ (#14855, #15091)
- Update Azure SDK instrumentation so
az.namespacecan be used for sampling (#15068) - Spring Boot Starter: Add cache to reduce environment variable lookups (#15132)
- HTTP instrumentations now emit semantic convention schema URL (#15144)
- Added instrumentation support for AsyncHttpClient version 1.8 (#15195)
- Instrumenter customizer now receives instrumentation type (#15227)
- Added support for Spring Framework 7.0 (#15287, #15299, #15301, #15304, #15311, #15362, #15371)
- Added span status customizer to incubating InstrumenterCustomizer API (#15288)
- Added configuration options for sqlcommenter (#15169)
- GraphQL instrumentation now records data fetcher errors (#15289)
- Add http client url template customizer (#15217)
- Introduce idiomatic
JmxTelemetryAPI for JMX metrics library (#15220) - Add instrumentation for OpenTelemetry API incubator's
ExtendedOpenTelemetry(#15178)
🛠️ Bug fixes
- Fix missing
peer.servicein Netty HTTP spans (#14963) - Fix Couchbase span kind to be
CLIENTinstead ofINTERNAL(#14995) - Link attributes are now bridged to the Java agent when using OpenTelemetry API (#15143)
- Potential race condition in JFR runtime metrics initialization fixed (#15231)
- Regression fixed related to context propagation when using Spring
@EnableAsync(#15249) - Declarative configuration now uses snake_case for distro resource provider attribute name (#15260)
- Logback appender fixed to capture Logstash
StructuredArguments.entries()(#15341) - Fix context propagation in Spring WebFlux 7.0 client reactive callbacks (#15336)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@bioplasticlining
@breedx-splk
@brunobat
@copilot-pull-request-reviewer
@defields923
@dixanms
@jack-berg
@jaydeluca
@jeanbisutti
@JonasKunz
@kasiditi
@koksay
@Kresshy
@laurit
@LikeTheSalad
@lukaszgryglicki
@mateuszrzeszutek
@mlbiscoc
@mznet
@PaarthB
@pepeshore
@roberttoyonaga
@robsunday
@steverao
@SylvainJuge
@tharsanrp
@trask
@vasireddy99
@wyctxwd1
@zeitlinger