OpenTelemetry - java Instrumentation
This release targets the OpenTelemetry SDK 1.29.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
NetClientAttributesExtractorandNetServerAttributesExtractorhave been deprecated (#9165, #9156)HttpClientAttributesGetternow extendsNetClientAttributesGetterandHttpServerAttributesGetterextendsNetServerAttributesGetter(#9015, #9088)- A couple of Spring starter configuration options have been renamed to match Java agent options: -
otel.springboot.httpclients.enabled->otel.instrumentation.spring-webmvc.enabledorotel.instrumentation.spring-webmvc.enableddepending on the underlying http client -otel.springboot.aspects.enabled->otel.instrumentation.annotations.enabled(#8950) - Previously deprecated suppression key
executorwas removed from executors module, the new suppression key isexecutors(#9064)
🌟 New javaagent instrumentation
- Ktor (#9149)
🌟 New library instrumentation
- Elasticsearch rest client (#8911)
📈 Enhancements
- Include OpenTelemetry logging appenders in the Spring Starter (#8945)
- Support RPC metrics under "stable" http semconv opt-in (#8948)
- Support the
http.request.method_originalattribute under "stable" semconv opt-in (#8779) - Make
server.socket.*attributes on the HTTP server side opt-in (#8747) - Fill additional db.* attributes on DataSource#getConnection() (#8966)
- Lettuce instrumentation - optimization to avoid extra toString() (#8984)
- Allow overriding span name in spring web library instrumentation (#8933)
- Implement HTTP resend spec for Reactor Netty (excl CONNECT spans) (#8111)
- Set
process.runtime.jvm.system.cpu.load_1mmetric unit to{run_queue_item}(#8777) - Update elasticsearch instrumentation to work with latest version (#9066)
- Reactor Netty: emit actual HTTP client spans on connection errors (#9063)
- Rename
http.*.durationtohttp.*.request.durationunder "stable" semconv opt-in (#9089) - Snippet inject support for non-empty head tags (#8736)
- Update network.protocol.version
2.0->2and3.0->3(#9145) - @WithSpan support for kotlin coroutines (#8870)
🛠️ Bug fixes
- Fix incompatibility between quarkus resteasy reactive and vertx-web instrumentations (#8998)
- Fix
IllegalArgumentExceptioninMetroServerSpanNaming(#9075) - Fix rector netty instrumentation under concurrency (#9081)
- Improve grpc cancellation propagation (#8957)
- Add missing timestamp for jboss logmanager instrumentation (#9159)
- Handle kafka
METRIC_REPORTER_CLASSES_CONFIGbeing set to a List (#9155) - Fix NullPointerException with Pulsar and SSL (#9166)
- Netty 4.1: handle closing connection before the request completes (#9157)
- Micrometer bridge: use app's thread context class loader for callbacks into app (#9000)
- Fix context propagation in Executor#execute() for non-capturing lambdas (#9179)
- Ensure reactor netty spans are ended in the order they were started (#9203)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@alaegin @AlexanderWert @amitgud-doordash @anderssv @bcoquell @breedx-splk @cleidiano @darcydai @davsheld-te @dkharlan @doppleware @guadalupe-duolingo @jack-berg @jackshirazi @jaydeluca @jeanbisutti @jkamon @JonasKunz @josecoelho96 @kaiwen @keithc-ca @laurit @lmolkova @mateuszrzeszutek @oliver-zhang @pg-yang @sebastian-hans-swm @siyuniu-ms @stevesea @swar8080 @theletterf @trask @tylerbenson @xiangtianyu @XiaoWeiKIN @YuliaMittova @zeitlinger