Skip to content

Releases: open-telemetry/opentelemetry-java-instrumentation

Version 2.26.0

14 Mar 20:28
778754b

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.60.1.

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 to non-stable APIs

  • Remove deprecated AWS Lambda v2.2 wrappers and forceFlush(int, TimeUnit) overload (#16170)
  • Remove deprecated HTTP client/server methods (#16167)
  • Remove deprecated database instrumentation methods and classes (#16164)
  • Remove deprecated peer-service mapping APIs (#16165)
  • Make runtime-telemetry deprecated classes now internal (#16173)
  • Remove AttributesExtractorUtil (#16152)
  • Remove marker interface from SqlClientAttributesGetter (#16205)
  • Merge network/server getter methods into DB attribute getters (#16264, #16268)
  • Rename SQL sanitizer classes to SQL analyzer (#16269)
  • Rename internal common module packages to follow new naming convention (#16284, #16308, #16327, #16341, #16373)

🚫 Deprecations

  • Deprecated individual runtime-telemetry module classes in favor of unified module (#16087)
  • Deprecated old HTTP server query parameter methods in favor of sensitive query param handling (#16097)
  • Deprecated old RPC attributes getter methods in favor of new ones supporting stable semantic conventions (#16130)
  • Deprecated old ClickHouse instrumentation methods as part of simplification (#16206)
  • Deprecated old R2DBC methods in favor of ones supporting db.system.name (#16251)
  • Deprecated old DbClientAttributesGetter methods; added getErrorType() with implementations (#16276)
  • Deprecated old RPC metrics methods in favor of ones supporting stable semantic conventions (#16298)
  • Deprecated old DbClientAttributesGetter methods; added getDbName() to better support old/stable semconv split (#16318)

📈 Enhancements

  • Add server address and port attributes for Spymemcached (#15242)
  • Add Kafka Connect as a built-in JMX metrics target (#15561)
  • Convert Lettuce instrumentation to use Instrumenter (#15838)
  • OpenSearch Java client: capture sanitized search query bodies (#15634)
  • Apply stable semantic conventions to Camel JMX metrics (#16088)
  • Add jvm.file_descriptor.limit metric (#16174)
  • Run gRPC client callbacks with parent context (#16175)
  • SQL summary: handle EXPLAIN statements (#16184)
  • Simplify InfluxDB instrumentation (#16207)
  • Update histogram buckets for db.client.operation.duration (#16222)
  • SQL summary: support Oracle dblink syntax (#16230)
  • Add instrumentation for ZIO HTTP server route (#16232)
  • Remove network attributes under database stable semconv flag (#16257)
  • Support Javalin 7 (#16261)
  • gRPC: initial stable semconv support (#16304)
  • Populate os.version resource attribute (#16311)
  • Camel: don't emit db spans under stable semconv (#16275)
  • Dubbo: stable semconv support (#16352)
  • Update the OpenTelemetry SDK version to 1.60.0 (#16407)
  • Use new stable LogRecordBuilder.setException() (#16423)
  • Configure semconv-stability.opt-in with declarative config API (#16443)
  • Support otel.event.name (#16220)

🛠️ Bug fixes

  • SQL sanitizer now treats double-quoted fragments as string literals by default (#15582)
  • Clear recorded exception when request completes (#16138)
  • Clear URL connection state after ending span (#16155)
  • Fix Spring declarative config with environment variable substitution (#15775)
  • Fix Ktor server send pipeline error handling (#16192)
  • Logging appenders: KeyValue attributes should take priority over MDC (#16239)
  • Create new PekkoRouteHolder for each request (#16258)
  • Tomcat JMX: ignore negative thread and session limits (#16355)
  • server.port is required on HTTP client spans (#16388)
  • Fix Ktor server instrumentation resolving peer address (#16392)
  • Fix class cast exception in servlet instrumentation (#16403)
  • Fix empty response body on Jetty HttpClient 9.4.24–9.4.43 (#16406)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@aaaugustine29
@Arpan200502
@breedx-splk
@filipl
@fuleow
@hilmarf
@huange7
@imrahul23
@jack-berg
@jaydeluca
@jonasplaum
@laurit
@lmolkova
@lucacavenaghi97
@minwoox
@mznet
@pepeshore
@richard-salac
@robsunday
@samwright
@self-sasi
@steverao
@SylvainJuge
@trask
@zeitlinger

Version 2.25.0

13 Feb 00:13
399dae9

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.59.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 to non-stable APIs

🚫 Deprecations

  • Deprecated getDelegate(), request(), channel(), remoteAddress() in HTTP client request wrapper classes in favor of getRequest(), getChannel(), getRemoteAddress() for consistency (#15942)
  • Deprecated NettyClientTelemetry.setChannelContext() in favor of setParentContext() (#16010)
  • Deprecated new* methods in favor of create* methods in Armeria and Jetty client instrumentation (e.g., newDecorator()createDecorator(), newHttpClient()createHttpClient()) (#16009)
  • Deprecated NettyServerTelemetry.createResponseHandler() and createCombinedHandler() overloads that expose internal classes (#16011)
  • Deprecated RatpackServerTelemetry.getHandler(), getExecInterceptor(), and getExecInitializer() in favor of createHandler(), createExecInterceptor(), and createExecInitializer() (#16013)
  • Deprecated setPeerService() in HTTP, gRPC, Dubbo, and Armeria instrumentation builders in favor of addAttributesExtractor() (#16059)
  • Deprecated RpcAttributesGetter.getMethod() in favor of getRpcMethod() to support stable RPC semantic conventions (#16121)
  • Deprecated PeerServiceResolver, PeerServiceAttributesExtractor, and HttpClientPeerServiceAttributesExtractor in favor of renamed classes ServicePeerResolver, ServicePeerAttributesExtractor, and HttpClientServicePeerAttributesExtractor (#16071)
  • Deprecated setStatementSanitizationEnabled() in favor of setQuerySanitizationEnabled() across database instrumentation builders (Cassandra, JDBC, Lettuce, Mongo, R2DBC) (#16133)
  • Deprecated individual runtime metric classes (Classes, Cpu, GarbageCollector, MemoryPools, Threads) in favor of RuntimeMetrics (#16064)
  • Deprecated SqlStatementInfo in favor of SqlQuery, and SqlStatementSanitizer in favor of SqlQuerySanitizer (#16074)

🌟 New library instrumentation

📈 Enhancements

  • Logback appender: add declarative config support (#15813)
  • OkHttp: avoid weak reference in library instrumentation (#15977)
  • HTTP clients: Enable query redaction by default in library instrumentations (#16096)
  • HttpURLConnection: mark as early instrumentation to ensure virtual fields are used (#16142)

🛠️ Bug fixes

  • Dropwizard metrics: Sanitize names where needed to comply with OpenTelemetry requirements (#15954)
  • Instrumentation API incubator: Fix span key mapping for MESSAGING_CONSUMER_PROCESS (#16001)
  • Couchbase: Fix local address occasionally missing (#16035)
  • Internal logging: Map jul config level to debug instead of info (#16141)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@imavroukakis
@jackshirazi
@jaydeluca
@jkwatson
@laurit
@pepeshore
@psx95
@roberttoyonaga
@robsunday
@steverao
@surbhiia
@SylvainJuge
@thiagohora
@toon-borgers-hs
@trask
@zeitlinger

Version 2.24.0

17 Jan 01:47
960ce5c

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.58.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

  • Remove support for previously deprecated property otel.instrumentation.logback-appender.experimental.capture-logstash-attributes (#15722)
  • Remove deprecated methods from HTTP library instrumentations (#15802)

🚫 Deprecations

  • JMX Metrics: Deprecated addClassPathRules and addCustomRules methods in JmxTelemetryBuilder, and moved non-public classes to an internal package (#15658)
  • Deprecated setMessagingReceiveInstrumentationEnabled in favor of setMessagingReceiveTelemetryEnabled to match config property name (#15668)
  • Deprecated database client attribute getter methods getDbSystem() and getResponseStatus() in favor of getDbSystemName() and getResponseStatusCode() to align with stable semantic conventions (#15696)
  • Deprecated setCapturedRequestParameters() in Servlet library instrumentation in favor of Experimental.setCapturedRequestParameters() as request parameter capture is experimental (#15826)
  • Deprecated getHttpClient(), setHttpClientTransport(), and setSslContextFactory() in Jetty client instrumentation in favor of new builder-style methods newHttpClient(), newHttpClient(SslContextFactory), and newHttpClient(HttpClientTransport, SslContextFactory) (#15827)
  • Deprecate Netty experimental method that is still in public API (#15828)
  • Deprecated newHttpClient() in favor of wrap() in Java HTTP Client instrumentation for consistency with naming conventions across library instrumentations (#15829)
  • Deprecated new* methods in favor of create* methods across multiple instrumentation libraries for consistency (e.g., newHttpClient()createHttpClient(), newInterceptor()createInterceptor()) (#15832)
  • Deprecated methods in SqlStatementInfo and MultiQuery in favor of methods using stable semantic convention terminology: getFullStatement()getQueryText(), getOperation()getOperationName(), and getStatements()getQueryTexts() (#15833)
  • Deprecated database getter methods in favor of methods using stable semantic convention terminology: getResponseStatusCode()getDbResponseStatusCode(), getBatchSize()getDbOperationBatchSize(), and getQueryParameters()getDbQueryParameters() (#15859)

📈 Enhancements

🛠️ Bug fixes

  • Servlet library instrumentation: fix capturing enduser.id (#15858)
  • Fix agent startup failing on read-only filesystem (#15682)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@breedx-splk
@brunobat
@copilot-pull-request-reviewer
@gaeljw
@igreenfield
@jack-berg
@jaydeluca
@jkwatson
@JonasKunz
@laurit
@mznet
@novoslavik
@philsttr
@robsunday
@steverao
@SylvainJuge
@toon-borgers-hs
@trask
@yairogen
@zeitlinger

Version 2.23.0

13 Dec 01:05
351b697

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.57.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

  • ActiveMQ Classic JMX metrics: rename attributes and metrics to align with semantic conventions (see PR description for specifics) (#14996)
  • Library instrumentation: remove previously deprecated methods from telemetry builders (#15324)
  • Logback: captureArguments no longer captures message template, use captureTemplate (#15423)
  • Play: disable controller spans by default, re-enable with otel.instrumentation.common.experimental.controller-telemetry.enabled=true (#15604)

🚫 Deprecations

  • Library instrumentation: deprecate setSpanNameExtractor() and setStatusExtractor() in favor of setSpanNameExtractorCustomizer() and setStatusExtractorCustomizer() (#15529)

🌟 New javaagent instrumentation

🌟 New library instrumentation

📈 Enhancements

  • Spring starter: add declarative config logging exporter (#14917)
  • Failsafe: add support for RetryPolicy (#15255, #15537)
  • GraphQL: add option to disable capturing query documents (#15384)
  • JMX metrics: allow any classpath resource path in rules (#15413)
  • Spring Boot actuator autoconfigure: support Spring Boot 4 (#15433)
  • Spring JMS: support Spring Boot 4 (#15434)
  • Spring starter: support Spring Boot 4 (#15459)
  • Lettuce: support custom ClientResources (#15470)
  • Lettuce: add reactor-core compatibility checker (#15472)
  • Servlet: propagate context explicitly for async runnables (#15476)
  • Servlet: always add trace_id and span_id attributes to requests (#15485)
  • Pekko HTTP: separate route instrumentation from HTTP server instrumentation (#15499)
  • MongoDB: emit versioned scope name (#15500)
  • Spring WebFlux: support Spring Boot 4 (#15502, #15574)
  • Spring WebMVC: support Spring Boot 4 (#15525)
  • Spring Cloud Gateway: support Spring Boot 4 (#15540)
  • Spring starter: add missing Kafka configuration options (#15592)
  • OpenTelemetry API interop: support new GlobalOpenTelemetry methods introduced in 1.57 (#15620)

🛠️ Bug fixes

  • Spring Web/WebFlux: restore GraalVM native-image compatibility (#15306)
  • Spring Kafka: end span in afterRecord callback (#15367)
  • Spring starter: fix environment variable overrides for array properties in declarative config (#15424)
  • Ktor: prevent double end() calls in KtorServerTelemetry (#15452)
  • OpenTelemetry API interop: fix null handling in ExtendedOpenTelemetry declarative config (#15478)
  • Akka HTTP: fix http.route attribute capture and span naming (#15504)
  • Extensions: fix SPI loading for InstrumenterCustomizerProvider and related classes (#15538)
  • Sanitize sql statements that may contain unquoted passwords (#15607)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@123liuziming
@bioplasticlining
@Cirilla-zmh
@copilot-pull-request-reviewer
@cyrille-leclerc
@droidnxs
@gaeljw
@George-C-Odes
@ghareeb-falazi
@GondaliaKaran
@gquintana
@jack-berg
@jaydeluca
@laurit
@marychatte
@obs-gh-abhishekrao
@onurkybsi
@philsttr
@prydin
@robsunday
@steverao
@SylvainJuge
@Tefaier
@thompson-tomo
@ThorbenKuck
@toon-borgers-hs
@trask
@tylerbenson
@zeitlinger

Version 2.22.0

20 Nov 04:06
a5c7d88

Choose a tag to compare

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

Version 2.21.0

18 Oct 01:27
018b80b

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.55.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

  • Hadoop JMX metrics have been renamed to align with semantic conventions. If you are using Hadoop JMX metrics, you will need to update your dashboards and alerts. (#14411)
  • Lettuce 5.1 instrumentation now aligns with other instrumentations and no longer sets the span status description. (#14886)

🚫 Deprecations

  • The following Logback appender configuration properties have been renamed for clarity. The old property names have been deprecated and will be removed in a future release: - Java agent: otel.instrumentation.logback-appender.experimental.capture-logstash-attributesotel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes - Spring Boot starterotel.instrumentation.logback-appender.experimental.capture-logstash-markersotel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes - Logback appender configuration property: captureLogstashAttributescaptureLogstashMarkerAttributes - Logback appender API: setCaptureLogstashAttributes()setCaptureLogstashMarkerAttributes() (#14959)

🌟 New javaagent instrumentation

  • Add Helidon instrumentation (#13776)
  • Add NATS instrumentation (#13999)
  • OpenSearch Transport v3.0 Implementation (#14823)
  • Add Kafka Connect API instrumentation (#14478)

🌟 New library instrumentation

📈 Enhancements

  • Add experimental sqlcommenter support for JDBC and R2DBC (#13714)
  • Align Hadoop JMX metrics with semantic conventions (#14411)
  • Introduce experimental API for operation attributes to be passed only to OperationListeners (#14590)
  • Add span logging support for declarative configuration (#14591)
  • Add span logging support for Spring Boot starter (#14594)
  • Support capturing event names in logback, log4j, and jboss-logmanager appenders (#14649)
  • Include contrib sampler in java agent, e.g. for filtering health check endpoints (#14677)
  • Collect RPC metrics in Apache Dubbo instrumentation (#14690)
  • Add experimental option to disable noisy redis.encode span events in Lettuce instrumentation (#14750)
  • Support ListIterator in Kafka consumer instrumentation for Spark Structured Streaming (#14757)
  • Exclude wrapper classes in JDBC instrumentation (#14760)
  • Support JDBC URL parsing for OceanBase, PolarDB, and Lindorm databases (#14790)
  • Support context propagation in Guava AsyncEventBus (#14791)
  • Make db.statement attribute available during sampling in Lettuce instrumentation (#14856)
  • Add code.namespace and code.function attributes to Vaadin controller spans (#14882)
  • Add code.namespace and code.function attributes to Grails controller spans (#14885)
  • Support Hibernate 7.2.0.CR1 (#14921)
  • Support capturing Logstash StructuredArguments as log record attributes (#14959)
  • Add gRPC request/response size metrics (#14342)

🛠️ Bug fixes

  • Fix datasource instrumentation to support connection pools like Druid (#14602)
  • Fix Java HTTP client instrumentation to properly propagate request cancellation (#14747)
  • Fix Reactor Netty HTTP client instrumentation to handle IllegalStateException (#14778)
  • Fix executor context propagation when a stateless lambda instance is passed multiple times (#14841)
  • Remove span status description from Lettuce 5.1 instrumentation (#14886)
  • Fix Spring Boot autoconfiguration ordering for micrometer bridge (#15011)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@1095071913
@AlixBa
@asarkar
@asweet-confluent
@breedx-splk
@changliu-wk
@copilot-swe-agent
@crossoverJie
@damienburke
@defields923
@ericmm
@ghilainm
@grcevski
@hoteye
@igor-suhorukov
@jack-berg
@jaydeluca
@jiten686
@JonasKunz
@jonatan-ivanov
@laurit
@LikeTheSalad
@LiouChong
@malafeev
@maxxedev
@MrCull
@mznet
@neilfordyce
@nenadnoveljic
@onurkybsi
@patpatpat123
@pepeshore
@philsttr
@robsunday
@SentryMan
@sorobon
@steffan-westcott
@steverao
@survivant
@SylvainJuge
@tjquinno
@trask
@vasantteja
@wl2027
@xiangtianyu
@xuminwlt
@zeitlinger

Version 2.20.1

22 Sep 16:15
7eab988

Choose a tag to compare

This is a patch release on the previous 2.20.0 release, fixing the issue(s) below.

🛠️ Bug fixes

  • Backport: Update the OpenTelemetry SDK version to 1.54.1 (#14720)

Version 2.20.0

14 Sep 21:09
7f20f78

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.54.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.

Migration notes

  • The configuration option used to enable traces generated by the dropwizard-views instrumentation has changed from otel.instrumentation.common.experimental.controller-telemetry.enabled to otel.instrumentation.common.experimental.view-telemetry.enabled (#14475)
  • Deprecated (and -alpha) SpanNames class was removed (#14582)

🌟 New javaagent instrumentation

  • Add ClickHouse client v2 instrumentation (#14501)

📈 Enhancements

  • Add code attributes for log4j1 (#13947)
  • Add headers capture feature to Kafka 2.6 interceptors (#14290)
  • Support custom exception handling from logger instrumentation (#14493)
  • Add call depth check to executor instrumentation (#14546)
  • Add Spring starter thread details support (#14449)
  • Let AWS Lambda SQS handlers report partial batch failures (#14468)
  • Instrument instrumentation suppression API (#14565)
  • Declarative config: update file version support (#14593)
  • Add url.template support to Spring 6 RestTemplate (#14612)
  • Declarative config: add missing resource providers (#14222)
  • Declarative config: map common-enabled property (#14589)

🛠️ Bug fixes

  • Fix non-lowercase messaging headers capture (#14479)
  • Fix JUL logger methods parameter mismatch (#14531)
  • Fix a test failure with latest Mongo release (#14642)

🧰 Tooling

  • Add constructor to AgentClassLoader for custom parent ClassLoader (#14480)
  • Declarative config: make bridge usable by Spring starter and contrib (#14497, #14548)
  • Reduce log level for main jar detection (#14528)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@AlchemyDing
@asarkar
@breedx-splk
@brunobat
@devurandom
@jaydeluca
@jjant
@JonasKunz
@kelunik
@laurit
@maryliag
@Munken
@mznet
@oliver-zhang
@philsttr
@steverao
@SylvainJuge
@tanmaydpatel
@trask
@trasktest
@xiangtianyu
@zeitlinger

Version 2.19.0

17 Aug 00:44
4a4ed7d

Choose a tag to compare

This release targets the OpenTelemetry SDK 1.53.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.

📈 Enhancements

  • Align WildFly metrics with semantic conventions (#14208)
  • Add streaming chat instrumentation for OpenAI SDK (#14271)
  • Add OpenAI async client instrumentation support (#14322)
  • Add embeddings instrumentation for OpenAI client (#14353)
  • Support OpenAI 3.0 (#14423)

🛠️ Bug fixes

  • Fix OpenTelemetryDataSource error when refresh configuration (#14255)
  • Fix NPE when consuming Kafka messages with null headers (#14332)
  • Fix RxJava context propagation for ObservableFromCallable (#14393)
  • Avoid test failures on Spring Boot 4-m1 (#14420)

🧰 Tooling

  • Add support for extensions in attributesExtractors, contextCustomizers, operationListeners and spanNameExtractor (#13917)
  • Add declarative config early initialization and property mapping support (#14184)
  • Add consistent exclusion of boot libraries (#14306)
  • Build smoke-test-fake-backend Docker image for ARM64 architecture (#14387)
  • Implement all JUL Logger methods in PatchLogger (#14409)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@Algieba4
@anuraaga
@asweet-confluent
@breedx-splk
@charlie-world
@copilot-pull-request-reviewer
@danielgblanco
@iNikem
@jaydeluca
@JonasKunz
@kkz-01
@laurit
@Munken
@mznet
@pepeshore
@PeterF778
@robsunday
@steverao
@SylvainJuge
@trask
@xiangtianyu
@zeitlinger

Version 2.18.1

21 Jul 18:41
083d863

Choose a tag to compare

This is a patch release on the previous 2.18.0 release, fixing the issue(s) below.

🛠️ Bug fixes

  • Backport: Shade new io.opentelemetry.common package in the bootstrap class loader (#14283)