OpenTelemetry - java Instrumentation
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-attributes→otel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes- Spring Boot starterotel.instrumentation.logback-appender.experimental.capture-logstash-markers→otel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes- Logback appender configuration property:captureLogstashAttributes→captureLogstashMarkerAttributes- 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
- Add Helidon Instrumentation (#13776)
- Add NATS instrumentation (#13999)
- Failsafe 3.0 instrumentation introduced (#14057)
📈 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.encodespan 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.statementattribute available during sampling in Lettuce instrumentation (#14856) - Add
code.namespaceandcode.functionattributes to Vaadin controller spans (#14882) - Add
code.namespaceandcode.functionattributes 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