Releases: open-telemetry/opentelemetry-java-instrumentation
Version 2.21.0
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.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
andcode.function
attributes to Vaadin controller spans (#14882) - Add
code.namespace
andcode.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
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
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 fromotel.instrumentation.common.experimental.controller-telemetry.enabled
tootel.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
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
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)
Version 2.18.0
This release targets the OpenTelemetry SDK 1.52.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.
🌟 New javaagent instrumentation
- Add initial instrumentation for OpenAI client (#14221)
🌟 New library instrumentation
- Add initial instrumentation for OpenAI client (#14221)
📈 Enhancements
- Implement stable semantic conventions for
code.*
attributes with opt-in support (#13860) - Add span kind configuration support for method instrumentation and declarative tooling (#14014)
- Add support for vendor-specific declarative configuration properties (#14016)
- Add auto-instrumentation support for AWS Secrets Manager SDK v1 (#14027)
- Add
aws.sns.topic.arn
semantic convention support for AWS SNS SDK v1 and v2 (#14035) - Remove
thread.name
attribute from experimental JVM metrics (#14061) - Enhance and align Jetty JMX metrics with OpenTelemetry semantic conventions (#14067)
- Add support for latest spring-cloud-aws versions (#14207)
- Add JDBC parameter capture support for
PreparedStatement.setObject()
method (#14219) - Add
aws.lambda.resource.mapping.id
and experimental Lambda attributes for AWS Lambda SDK (#14229) - Clear context class loader from OpenTelemetry internal threads to prevent leaks (#14241)
🛠️ Bug fixes
- Fix JDBC URL parser StringIndexOutOfBoundsException with malformed connection strings (#14151)
- Fix empty units in JMX state metrics definitions (#14194)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuraaga
@atoulme
@breedx-splk
@codefromthecrypt
@garethedwards-tass
@jack-berg
@jadolgl
@jaydeluca
@jhayes2-chwy
@JonasKunz
@laurit
@lukeina2z
@mznet
@PeterF778
@robsunday
@steverao
@stevesea
@SylvainJuge
@trask
@wl2027
@zeitlinger
Version 2.17.1
This is a patch release on the previous 2.17.0 release, fixing the issue(s) below.
- Backport: Fix invalid jmx state metrics empty unit (#14195)
Version 2.17.0
This release targets the OpenTelemetry SDK 1.51.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
- Changes have been made to Tomcat metric definitions provided by JMX Metric Insight component
- metric
http.server.tomcat.errorCount
-->tomcat.error.count
- attribute:
name
-->tomcat.request.processor.name
- type: Gauge --> Counter
- attribute:
- metric
http.server.tomcat.requestCount
-->tomcat.request.count
- attribute:
name
-->tomcat.request.processor.name
- type: Gauge --> Counter
- attribute:
- metric
http.server.tomcat.maxTime
-->tomcat.request.duration.max
- attribute:
name
-->tomcat.request.processor.name
- unit:
ms
-->s
- attribute:
- metric
http.server.tomcat.processingTime
-->tomcat.request.duration.sum
- attribute:
name
-->tomcat.request.processor.name
- unit:
ms
-->s
- attribute:
- metric
http.server.tomcat.traffic
-->tomcat.network.io
- attribute:
name
-->tomcat.request.processor.name
,direction
-->network.io.direction
- attribute:
- metric
http.server.tomcat.sessions.activeSessions
-->tomcat.session.active.count
- attribute:
context
-->tomcat.context
- attribute:
- metric
http.server.tomcat.threads
split into two metrics:tomcat.thread.count
andtomcat.thread.busy.count
- attribute:
name
-->tomcat.thread.pool.name
,state
removed
- attribute:
- metric
📈 Enhancements
- JMX metrics: require explicit unit in yaml (#13796)
- Remove deprecated methods from runtime-telemetry (#13885)
- ClickHouse JDBC URL support (#13884)
- Support Vert.x HTTP client version 5.0 (#13903)
- Add metric
jvm.file_descriptor.count
to jvm runtime experimental metrics (#13904) - Add support for Vert.x SQL client version 5.0 (#13914)
- JMX Metric Insights - improved Tomcat metrics alignment to semconv and added new Tomcat metrics
tomcat.session.active.limit
andtomcat.thread.limit
(#13650) - Apply method instrumentation only to methods (#13949)
- Apply external annotation instrumentation only to methods (#13948)
- Log start of spring boot starter (#13882)
- Update the OpenTelemetry SDK version to 1.51.0 (#13992)
- Capture finatra code function name (#13939)
- AWS SDK v2 Secrets Manager auto-instrumentation support (#14001)
- AWS SDK v1 Step Functions auto-instrumentation support (#14003)
- Add auto-instrumentation support for AWS Step Functions SDK v2 (#14028)
- Skip propagating context into mysql jdbc cleanup thread (#14060)
🛠️ Bug fixes
- Fix instrumentation failure when constructor has @WithSpan annotation (#13929)
- Fix structured concurrency support on jdk 25 (#13936)
- Fix Spring boot starter fails to load when an OpenTelemetry Bean is supplied (#13972)
- Fix UCP instrumentation scope name (#14029)
- Preload ThreadLocalRandom to avoid java.lang.ClassCircularityError: java/util/concurrent/ThreadLocalRandom (#14030)
🙇 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
@github-advanced-security
@jack-berg
@jackshirazi
@jaydeluca
@jeanbisutti
@john-hyun-eb
@john9x
@JonasKunz
@laurit
@lukeina2z
@PeterF778
@prdoyle
@robsunday
@schmikei
@steverao
@SylvainJuge
@trask
@wl2027
@zeitlinger
Version 2.16.0
This release targets the OpenTelemetry SDK 1.50.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 operation name from graphql span name (#13794)
- Remove deprecated property for disabling kafka metrics (#13803)
🌟 New javaagent instrumentation
- Add Avaje Jex Instrumentation (#13733)
📈 Enhancements
- Add Gen AI support for additional models (#13682)
- Add JVM metrics to JMX instrumentation (#13392)
- Add
jvm.file_descriptor.count
metric to JMX instrumentation (#13722) - Optimize lettuce argument splitter regex (#13736)
- Re-enable Agent Detection on z/OS (#13730)
- Add GC cause as an opt-in attribute on jvm GC related metric (#13750)
- Implement stable semconv for db connection pool metrics (#13785)
- Add Cloud foundry resource provider (#13782)
- Add instrumentation for opensearch-rest-3.0 (#13823)
- Run tests with jdk24 and 25-ea (#13824)
- Propagate context into CompletableFuture returned from aws2 async client methods (#13810)
- Added opt-in instrumentation for transaction commit/rollback in jdbc (#13709)
- Added experimental opt-in JDBC
db.query.parameter.<key>
span attributes (#13719) - Add tools support to bedrock InvokeModel instrumentation (#13832)
🛠️ Bug fixes
- Fix instrumentation for ibm https url connection connect (#13728)
- Don't wrap null ResultSet in jdbc library instrumentation (#13758)
- Fix NPE in netty 3.8 instrumentation (#13801)
- Fix ending server span with servlet async request (#13830)
🧰 Tooling
- Allow advice to define custom mappings (#13751)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@123liuziming
@AlixBa
@anuraaga
@benjamin-confino
@breedx-splk
@codefromthecrypt
@ezhang6811
@jack-berg
@jannewulf
@jaydeluca
@jeanbisutti
@JonasKunz
@laurit
@lily-es
@navidcs
@robsunday
@ryanrupp
@schmikei
@SentryMan
@steverao
@stillya
@SylvainJuge
@tinnapat
@trask
@zeitlinger
@zhenlin-pay2
Version 2.15.0
This release targets the OpenTelemetry SDK 1.49.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
- Delete deprecated java http client classes (#13527)
- Support latest version of kafka client library (#13544)
- Implement genai events for bedrock (streaming) (#13507)
- JMX metrics support unit conversion (#13448)
- Rename experimental method, use Telemetry instead of Metrics (#13574)
- End metric description with dot (#13559)
- Add initial gen_ai instrumentation of bedrock InvokeModel (#13547)
- Delete deprecated library instrumentation methods (#13575)
- Add experimental http client url.template attribute (#13581)
- Add
error.type
for JDBC underotel.semconv-stability.opt-in
flag (#13331) - Add azure resource provider (#13627)
- Remove
aws.endpoint
attribute from SQS instrumentation (#13620) - Avoid conflicts with user-defined Apache Dubbo filters with default order (#13625)
- Support filtering negative values from JMX metrics (#13589)
- Instrument bedrock InvokeModelWithResponseStream (#13607)
- Use context instead of request attributes for servlet async instrumentation (#13493)
- Improve handling of quoted table names (#13612)
🛠️ Bug fixes
- Fix aws timeseries requests misdetected as dynamodb (#13579)
- Fix pekko route naming (#13491)
- Fix route handling when local root span wasn't created by instrumentation api (#13588)
- The
HostIdResourceProvider
should instantiate anHostIdResource
, not anHostResource
(#13628) - Fix OpenTelemetryPreparedStatement and the returned ResultSet.getStatement() do not match (#13646)
- Fix Spring boot starter dependency resolution failure with Gradle and Java 11 (#13384)
- Fix extremely large DB statements may cause memory leak (#13353)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@123liuziming
@alexgenon
@anuraaga
@breedx-splk
@codefromthecrypt
@crossoverJie
@cyrille-leclerc
@hannahchan
@jack-berg
@jaydeluca
@jeanbisutti
@JonasKunz
@laurit
@MarcusDunn
@masonedmison
@railsharipov
@robsunday
@samwright
@shaokeyibb
@steverao
@SylvainJuge
@trask
@victor-noel-pfx
@zeitlinger