github open-telemetry/opentelemetry-java-instrumentation v2.22.0
Version 2.22.0

8 hours ago

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_unitsaws.dynamodb.provisioned_read_capacity (type changed from long to double) - aws.dynamodb.provisioned_throughput.write_capacity_unitsaws.dynamodb.provisioned_write_capacity (type changed from long to double) - aws.dynamodb.exclusive_start_table_nameaws.dynamodb.exclusive_start_table - aws.dynamodb.projection_expressionaws.dynamodb.projection - aws.dynamodb.scan_index_forwardaws.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)
  • JDBC library data source instrumentation now disabled by default (#15074)
  • JMX state metrics unit changed from empty string to 1 to 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.namespace can 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 JmxTelemetry API for JMX metrics library (#15220)
  • Add instrumentation for OpenTelemetry API incubator's ExtendedOpenTelemetry (#15178)

🛠️ Bug fixes

  • Fix missing peer.service in Netty HTTP spans (#14963)
  • Fix Couchbase span kind to be CLIENT instead of INTERNAL (#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

Don't miss a new opentelemetry-java-instrumentation release

NewReleases is sending notifications on new releases.