opentelemetry-java-instrumentation v2.28.0
opentelemetry-java-instrumentation v2.28.0
This release targets the OpenTelemetry SDK 1.62.0.
Note that many artifacts have the -alpha suffix attached to their version number, reflecting that they will continue to have breaking changes. Please see VERSIONING.md for more details.
⚠️ Breaking changes to non-stable APIs
- Removed the obsolete internal
ClassInjector/ProxyInjectionBuilderAPI used by the oldExperimentalInstrumentationModule.injectClasses(ClassInjector)path; useExperimentalInstrumentationModule.exposedClassNames()instead. (#18112) - Removed previously deprecated non-stable API methods and the deprecated
opentelemetry-runtime-telemetry-java8andopentelemetry-runtime-telemetry-java17library aliases. (#18136) - Removed the previously deprecated
captureEventNamelibrary builder setting from the logback-appender-1.0 and log4j-appender-2.17OpenTelemetryAppender, and the correspondingotel.instrumentation.{logback-appender,log4j-appender,jboss-logmanager}.experimental.capture-event-namejavaagent properties. Use theotel.event.namekey in MDC / context data / key-value pairs / Logstash markers / structured arguments instead. (#18223) - Removed previously deprecated experimental config properties
otel.instrumentation.http.client.experimental.redact-query-parametersandotel.instrumentation.common.experimental.db-sqlcommenter.enabled; useotel.instrumentation.sanitization.url.experimental.sensitive-query-parametersandotel.instrumentation.common.db.experimental.sqlcommenter.enabledinstead. (#18229) - Removed the deprecated
otel.instrumentation.servlet.experimental.add-trace-id-request-attributeproperty; useotel.instrumentation.servlet.experimental.trace-id-request-attribute.enabledinstead. (#18237) - Reshaped the ktor
Experimentalhelper from a class with acompanion objectto a top-levelobject. Kotlin source callers (Experimental.emitExperimentalTelemetry(...)) are unaffected, but pre-compiled consumers must be recompiled against the new artifact. (#18343)
🚫 Deprecations
- Deprecate
otel.instrumentation.jaxws-cxf-3.0.enabledin favor ofotel.instrumentation.jaxws-2.0-cxf-3.0.enabled, andotel.instrumentation.jaxws-metro-2.2.enabledin favor ofotel.instrumentation.jaxws-2.0-metro-2.2.enabled. (#18184)
🌟 New javaagent instrumentation
- Add Apache Thrift 0.13 instrumentation for RPC client and server spans and metrics. (#18405)
🌟 New library instrumentation
- Add Apache Thrift 0.13 library instrumentation for RPC client and server spans and metrics. (#18405)
📈 Enhancements
- Couchbase 3.1 javaagent instrumentation now emits the more conventional instrumentation scope name
io.opentelemetry.couchbase-3.1instead ofio.opentelemetry.javaagent.couchbase-3.1whenotel.instrumentation.common.v3-previewis enabled. (#18426) - Wicket resource requests now use the resource reference class name in the server span name when
otel.instrumentation.common.v3-previewis enabled. (#18312, #18775) - Decide whether javaagent helper classes are injected into the application class loader or isolated based on the advice classes used by an instrumentation. (#17815)
- Improve cgroup v2 container ID detection for Podman by supporting additional
mountinfolayouts and warning when multiple candidate IDs are found. (#18272)
🛠️ Bug fixes
- Fix Pekko HTTP and Tapir server route tracking so server span names and
http.routepreserve the most specific matched route across nested directives, exceptions, and timeouts; this may change span names andhttp.routevalues for affected routes. (#16390) - Fix context loss in Finagle HTTP instrumentation across Netty-to-Finagle request conversion and
twitter-utilFuture/Promise asynchronous boundaries. (#17867) - Fix virtual-thread pinning caused by weak-map stale-entry cleanup running on virtual threads; cleanup now runs from the background thread instead. (#18113)
- Avoid linking batch consumer spans to the ambient consumer span when records or messages have no propagation headers. (#18154)
- Fix
resetOnEachOperator()for Reactor 3.1 so it also removes the scheduler hook when instrumentation is disabled. (#18258) - End spans when RxJava 1.0 subscriptions throw synchronously. (#18265)
- Fix Spring Boot service version auto-detection so
META-INF/build-info.propertiesis read from the jar root instead ofBOOT-INF/classes/. (#18292) - Clear the Netty
VirtualFieldafter finishing a response in the Netty 3.8 server instrumentation. (#18358) - Fix
JarDetailsto closeJarFilehandles while reading archives and embedded jars, preventing resource leaks during runtime telemetry collection. (#18385) - Fix a
NullPointerExceptionwhen converting an agent context without an associated application context to an application context. (#18444) - Fix Ktor server instrumentation to prevent OpenTelemetry context leaks caused by incomplete coroutine context restoration. (#18456)
- Fix Vert.x sub-router
http.routeattributes by prepending the mount point to the relative route path; this may change server span names andhttp.routevalues for mounted sub-routes. (#18462) - Fix oshi metrics startup and RSS memory reporting with
oshi7.0.0. (#18478) - Fix Play MVC and Play WS instrumentation on Play 3.x applications. (#18624)
- Record an error receive span when a wrapped Kafka consumer
poll()fails. (#18625) - Fix weak-map cleanup during agent startup by starting
WeakConcurrentMapCleanerbefore Byte Buddy installation. (#18628) - Fix indy instrumentation so it works with the security manager without recursive bootstrap failures. (#18634)
- Avoid a deadlock in weak caches when stale entries are expunged during
computeIfAbsent. (#18635) - Declarative config customizers now handle missing processor and detector lists without throwing
NullPointerExceptionduring startup. (#18641) - Fix a race that could prevent HTTP server spans from ending correctly in Netty 3.8 and 4.0 instrumentation. (#18645)
- Avoid
NumberFormatExceptionwhen a JDBC URL port is null. (#18708) - Fix Vert.x
TaskQueueandOrderedExecutorFactorytask execution so span context propagates to queued runnables. (#18709) - Limit Redisson batch query text length to avoid oversized
db.statementvalues for large batches. (#18744) - Fix SQL query sanitization so password clauses in SAP HANA administrative statements are redacted without redacting
passwordidentifiers. (#18754)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuraaga @Ari4ka @asvanberg @breedx-splk @Channyboy @chatgpt-codex-connector @deejay1 @dengliming @dmarkwat @dtaveras @filipl @jack-berg @jaydeluca @laurit @michaelnimbs-ehex @mznet @otbe @PeterF778 @rohitmohan96 @samwright @stefanroeck @steverao @SylvainJuge @trask @wrobelma @YaoYingLong @zeitlinger
Source open-telemetry/opentelemetry-java-instrumentation ·
v2.28.0· 2026-05-19 · upstream release
Mirrored verbatim for indexing. All rights belong to the upstream project.
Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.