opentelemetry-java-instrumentation v2.30.0
opentelemetry-java-instrumentation v2.30.0
This release targets the OpenTelemetry SDK 1.64.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
- Remove
ExperimentalInstrumentationModule#getModuleGroup(). Built-in invokedynamic modules now share a singleInstrumentationModuleClassLoader, and each extension is isolated in its own. (#18859) - Remove the deprecated
InstrumentationModule.isIndyModule(); whether a module uses invokedynamic is now determined by the agent rather than declared per module. (#19140) - Remove deprecated query-related APIs from
SqlClientAttributesGetter,CassandraRequest, andExperimental. (#19165) - Remove the deprecated
Enduser*attribute-capturing APIs from the Spring Security 6.0 library; use theUser*replacements instead. (#19168)
🚫 Deprecations
- Deprecate only the Spring Boot starter
ConfigPropertiescompatibility bean used with experimental declarative configuration, in favor of the newConfigProviderbean; it will be removed in 3.0. TheConfigPropertiesbean remains supported for non-declarative configuration. (#19175) - Deprecate
DeclarativeConfigPropertiesBridgeandDeclarativeConfigPropertiesBridgeBuilder. UseDeclarativeConfigPropertiesdirectly orDeclarativeConfigBridgeinstead. Will be removed in 3.0. (#19202) - Deprecate
ConfigPropertiesBackedConfigProviderin favor ofDeclarativeConfigBridge. It will be removed in 2.31.0. (#19220)
🌟 New javaagent instrumentation
- Add Javaagent instrumentation for HBase client 1.4. (#19087)
🌟 New library instrumentation
- Add library instrumentation (
ThriftTelemetry) for the Apache Thrift 0.13 async server. (#19062)
📈 Enhancements
- Add async server tracing to the Apache Thrift 0.13 javaagent instrumentation; async server handlers were previously uninstrumented. (#18994)
- Support
database=as an alias fordatabaseNamewhen extractingdb.namefrom MSSQL JDBC URLs. (#19029) - Add batch-operation support to the experimental stable database semantic-convention opt-in (
otel.semconv-stability.opt-in=database) across database instrumentations, including batch span names,db.operation.batch.size(including empty batches), anddb.query.summary. (#19034, #19037, #19054, #19055, #19056, #19057, #19143, #19147, #19161, #19162, #19164, #19172, #19189, #19199) - Add tracing for Lettuce 4.0 reactive commands, including exceptional completion and cancellation. (#19071)
- Add the experimental Cassandra JMX metrics target system. (#19080)
- Add experimental JFR-based
jvm.thread.virtual.pinnedandjvm.thread.virtual.submit_failedmetrics for Java 19+ virtual threads; enable withotel.instrumentation.runtime-telemetry.emit-experimental-jfr-metrics=true. (#19092) - Capture custom object values passed to
PreparedStatement.setObject()in query parameter attributes. (#19093) InstrumentationModulenow exposesinjectedClassNames()andexposedClassNames()for indy instrumentations, so module authors no longer needExperimentalInstrumentationModulefor those helper-class declarations. (#19142)- Add
captureTemplateandcaptureArgumentsoptions to the log4j, java-util-logging, and jboss-logmanager logging instrumentations, capturing the log message template and arguments as separatelog.body.template/log.body.parametersattributes; logback already supported these options (#15423). (#19154) - Add
server.addressandserver.portattributes to Redisson client spans. (#19191) - Add
server.addressandserver.portattributes to Lettuce Redis client spans. (#19192) - Add
server.addressandserver.portattributes to Rediscala client spans. (#19193) - Set
server.addresson registry-backed Dubbo client spans to the registry address plus the service target (registry://host:port/interface:version:group) and leaveserver.portunset, gated behind the stable rpc semconv opt-in (otel.semconv-stability.opt-in=rpc); the resolved provider host and port are kept under the default semconv. (#17244, #19285)
🛠️ Bug fixes
- Fix a spurious duplicate warning when the application logger bridge is installed multiple times during startup. (#19088)
- Fix MySQL and MariaDB
db.connection_stringvalues so IPv6 hosts stay bracketed instead of becoming ambiguous. (#19078) - Fix multi-topic Pulsar consumers so the internal background receive no longer creates a spurious extra receive span. (#19095)
SpringConfigProperties.getMap()no longer evaluates map property values as SpEL expressions; non-special-cased map properties now parse as comma-delimitedkey=valuepairs via the SDK’sDefaultConfigProperties, so settings likeotel.instrumentation.common.peer-service-mappingwork without SpEL syntax. (#19113)- Fix JMS destination extraction so an unreadable destination now leaves
messaging.destination.nameunset instead of reporting it asunknown. (#19115) - Fix the JMX Metric Insight
jvm.class.loadedandjvm.class.unloadedmetrics to use counter instruments. (#19141)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@alokmajumder @bhuvan-somisetty @breedx-splk @carlosalberto @CodingFabian @FrankSpitulski @heyams @hwxy233 @imavroukakis @inssein @ishg @jaydeluca @jkoronaAtCisco @johnbley @JonasKunz @laurit @maryliag @maxxedev @mmanciop @opentelemetry-pr-dashboard @opentelemetrybot @pavolloffay @philsttr @robsunday @ryanrupp @steverao @SylvainJuge @trask @tsawada @xiangtianyu @YaoYingLong @zeitlinger
Source open-telemetry/opentelemetry-java-instrumentation ·
v2.30.0· 2026-07-22 · 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.