Releases: open-telemetry/opentelemetry-java-instrumentation
Version 1.23.0
This release targets the OpenTelemetry SDK 1.23.1.
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
- HTTP span names are now
"{http.method} {http.route}"
instead of just"{http.route}"
, reflecting the recent change in the HTTP semantic conventions (#7730) - Added the base version into library package names to make room for other base versions without breaking backwards compatibility in the future once these artifacts are declared stable (#7608, #7752, #7764)
io.opentelemetry.instrumentation.spring.web.SpringWebTelemetry
→io.opentelemetry.instrumentation.spring.web.v3_1.SpringWebTelemetry
io.opentelemetry.instrumentation.spring.webflux.SpringWebfluxTelemetry
→io.opentelemetry.instrumentation.spring.webflux.v5_0.SpringWebfluxTelemetry
io.opentelemetry.instrumentation.spring.integration.SpringIntegrationTelemetry
→io.opentelemetry.instrumentation.spring.integration.v4_1.SpringIntegrationTelemetry
io.opentelemetry.instrumentation.logback.v1_0.OpenTelemetryAppender
→io.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender
io.opentelemetry.instrumentation.apachedbcp.ApacheDbcpTelemetry
→io.opentelemetry.instrumentation.apachedbcp.v2_0.ApacheDbcpTelemetry
io.opentelemetry.instrumentation.c3p0.C3p0Telemetry
→io.opentelemetry.instrumentation.c3p0.v0_9.C3p0Telemetry
io.opentelemetry.instrumentation.graphql.GraphQLTelemetry
→io.opentelemetry.instrumentation.graphql.v12_0.GraphQLTelemetry
io.opentelemetry.instrumentation.guava.GuavaAsyncOperationEndStrategy
→io.opentelemetry.instrumentation.guava.v10_0.GuavaAsyncOperationEndStrategy
io.opentelemetry.instrumentation.hikaricp.HikariTelemetry
→io.opentelemetry.instrumentation.hikaricp.v3_0.HikariTelemetry
io.opentelemetry.instrumentation.kafkaclients.KafkaTelemetry
→io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry
io.opentelemetry.instrumentation.oracleucp.OracleUcpTelemetry
→io.opentelemetry.instrumentation.oracleucp.v11_2.OracleUcpTelemetry
io.opentelemetry.instrumentation.ratpack.RatpackTelemetry
→io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry
io.opentelemetry.instrumentation.reactor.ContextPropagationOperator
→io.opentelemetry.instrumentation.reactor.v3_1.ContextPropagationOperator
io.opentelemetry.instrumentation.viburdbcp.ViburTelemetry
→io.opentelemetry.instrumentation.viburdbcp.v11_0.ViburTelemetry
- Several instrumentation scope names have been fixed (#7632)
io.opentelemetry.cxf-jaxrs-3.2
→io.opentelemetry.jaxrs-2.0-cxf-3.2
io.opentelemetry.jersey-2.0
→io.opentelemetry.jaxrs-2.0-jersey-2.0
orio.opentelemetry.jaxrs-3.0-jersey-3.0
as appropriateio.opentelemetry.resteasy-3.0
→io.opentelemetry.jaxrs-2.0-resteasy-3.0
io.opentelemetry.resteasy-3.1
→io.opentelemetry.jaxrs-2.0-resteasy-3.1
io.opentelemetry.resteasy-6.0
→io.opentelemetry.jaxrs-3.0-resteasy-6.0
io.opentelemetry.jws-1.1
→io.opentelemetry.jaxws-jws-api-1.1
io.opentelemetry.vertx-kafka-client-3.5
→io.opentelemetry.vertx-kafka-client-3.6
io.opentelemetry.hibernate-4.3
→io.opentelemetry.hibernate-procedure-call-4.3
- All methods in all
*Getter
classes ininstrumentation-api-semconv
have been renamed to use theget*()
naming scheme (#7619) - Return interfaces instead of concrete implementations in
instrumentation-api-semconv
(#7658)
📈 Enhancements
- Support Spring Web 6 in library instrumentation (#7551)
- Add gRPC request metadata instrumentation (#7011)
- Pass context to content length http metrics meters (#7506)
- Update SQL span name for procedures (#7557)
- Ratpack services OpenTelemetry (#7477)
- Ignore janino classloader (#7710)
- Improve type resolution cache for classes in java package (#7714)
- End netty client span before callbacks (#7737)
- Support slf4j to log4j2 (#7656)
- Add
net.host.port
to thehttp.server.active_requests
metric (#7757) - Allow JDBC library instrumentation to use a custom OpenTelemetry instance to be more DI (e.g. Spring Boot) friendly (#7697)
- Dubbo: don't create spans for calls inside the same jvm (#7761)
- Bridge OpenTelemetry metrics batch API (#7762)
- Support Spring Boot 3 in autoconfigure module (#7784)
- Change Spring Scheduling to not capture span for one-time jobs (only repeated jobs) (#7760)
- Add instrumentation for hibernate 6 (#7773)
- Put
http.route
attribute ontohttp.server.duration
on Play framework request processing (#7801) - Add Jakarta JSF 3.0+ instrumentation (#7786)
- Capture
net.sock.peer.addr
more reliably in grpc client instrumentation (#7742)
🛠️ Bug fixes
- Fix potential startup failure (#7567)
- Fix NoClassDefFoundError happening when snakeyaml is used on a custom JRE (#7598)
- Fix inconsistent handling of
net.peer.port
in HTTP instrumentations (#7618) - Fix concurrency issue in OpenTelemetryDriver (#7628)
- Fix ClassCastException with redisson batch with atomic write option (#7743)
- Ensure kafka configuration remains serializable (#7754, #7789)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@akats7
@anuragagarwal561994
@arbiv
@aschugunov
@astappiev
@bcmedeiros
@blumamir
@breedx-splk
@cuichenli
@FranPregernik
@heyams
@jack-berg
@jarias-lfx
@jkwatson
@jsalinaspolo
@kaibocai
@laurit
@lmolkova
@mateuszrzeszutek
@MosheElisha
@moznion
@PeterF778
@plevart
@robododge
@samimusallam
@ShinJJang
@Tavh
@theletterf
@trask
@xiangtianyu
@zeitlinger
@zewade
Version 1.22.1
This is a patch release on the previous 1.22.0 release, fixing the issue(s) below.
- Fix potential startup failure (#7567)
Version 1.22.0
This release targets the OpenTelemetry SDK 1.22.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
- Add resource injection for getResourceAsStream (#7476)
- GRPC: Adds peer socket address when the client call is ready (#7451)
- Make OpenTelemetryAppender.Builder public (#7521)
- Disable internal TaskScheduler spans in Spring Kafka instrumentation (#7553)
- Support Spring Web MVC in library instrumentation (#7552)
- Instrument JMS 3.0 (Jakarta) (#7418)
- Shade
application.io.opentelemetry
in agent extension class loader (#7519) - Use new reactor contextWrite when available (from reactor 3.4.0) (#7538)
- Make config file available in early agent initialization phase (#7550)
- Support Spring JMS 6.0 (#7438)
🛠️ Bug fixes
- Preserve original exception in jetty http client wrappers (#7455)
- Propagate original exception through kafka wrapper (#7452)
- Fix class file load error when using spring-guice together with spring-web instrumentation (#7447)
- Fix NPE in servlet AsyncListener on OpenLiberty (#7498)
🧰 Tooling
- Muzzle logs should be logged using the io.opentelemetry.* logger name (#7446)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuragagarwal561994
@axelczk
@breedx-splk
@cschieb
@jack-berg
@kingkongpoon
@laurit
@liangyuanpeng
@mateuszrzeszutek
@pellmont
@PeterF778
@sodared
@theletterf
@trask
@tylerbenson
@wallezhang
@wzy531a
Version 1.21.0
This release targets the OpenTelemetry SDK 1.21.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
- Remove deprecated HTTP semconv code (#7259)
- Rocketmq 5: set context for async callback (#7238)
- HTTP semconv: filter out default peer/host ports (#7258)
- Allow multiple YAML configuration files for JMX rules (#7284)
- OpenTelemetryDriver better support for native images (#7089)
- Support Spring Kafka 3 (#7271)
- Add instrumentation for opentelemetry-extension-kotlin (#7341)
- Populate
messaging.kafka.message.offset
in all kafka instrumentations (#7374) - More flexible cgroupv2 container id parsing (and podman support) (#7361)
- Instrument spring-web 6 & spring-webmvc 6 (#7366)
- Change log4j MapMessage attribute names (#7397)
- Don't call Thread#setContextClassLoader() (#7391)
🛠️ Bug fixes
- Webflux instrumentation doesn't capture
http.status_code
in some cases (#7251) - Clean WeakConcurrentMap from background thread (#6240)
- Update gwt rpc span from INTERNAL to SERVER (#7342)
- JMXMetricInsight should log nothing at INFO level (#7367)
- Fix NullPointerException when uri is null (#7387)
- Agent context storage wrapper should not override other wrappers (#7355)
- Do not install GC metrics when GarbageCollectionNotificationInfo is not available (#7405)
- Fix connection pool timeouts unit (#7404)
🧰 Tooling
- Allow disabling muzzle checks for specific methods (#7289)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@aaron-ai
@anuraaga
@breedx-splk
@brianmolinaspring
@brunobat
@devnewton
@fmhwong
@Iapetus999
@IcebergXTY
@jack-berg
@jamesylgan
@jkwatson
@laurit
@mateuszrzeszutek
@michalvavrik
@mpeyper
@oleborne
@PeterF778
@theletterf
@trask
@vasireddy99
Version 1.20.2
This is a patch release on the previous 1.20.1 release, fixing the issue(s) below.
🛠️ Bug fixes
- Fix the boms (#7252)
Version 1.20.1
This is a patch release on the previous 1.20.0 release, fixing the issue(s) below.
📈 Enhancements
- Update SDK version from 1.19.0 to 1.20.1 (#7223)
Version 1.20.0
This release targets the OpenTelemetry SDK 1.20.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.
Instrumentation annotations module is declared stable in this release (io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:1.20.0
).
Migration notes
- Renamed configuration property
otel.instrumentation.kafka.client-propagation.enabled
tootel.instrumentation.kafka.producer-propagation.enabled
and update code so that it only affects producer propagation (#6957) - Deprecated RocketMQ configuration property
otel.instrumentation.rocketmq-client.propagation
(#6958) - Deprecated
HttpServerAttributesExtractor#create(HttpServerAttributesGetter)
andHttpServerAttributesExtractor#builder(HttpServerAttributesGetter)
(#7020) - Renamed annotation instrumentation property name for the recent
opentelemetry-instrumentation-annotations
package fromotel.instrumentation.opentelemetry-annotations.exclude-methods
tootel.instrumentation.opentelemetry-instrumentation-annotations.exclude-methods
(#7196)
🌟 New javaagent instrumentation
📈 Enhancements
- Add meter version to runtime metrics (#6874)
- Auto-detect service name based on the jar name (#6817)
- okhttp: run our interceptor before other interceptors (#6997)
- Implement producer part of RocketMQ new client instrumentation (#6884)
- Ignore presto-jdbc shaded okhttp3 connection pool. (#7031)
- Record memory usage after garbage collection (#6963)
- Ignore trino shaded okhttp pool (#7114)
- Ignore Nashorn's class loader for performance reasons (#7116)
- Add gRPC library configuration for additionalServerExtractors (#7155)
- Implement consumer part of rocketmq new client instrumentation (#7019)
- Support cgroup v2 (#7167)
- Replace
runtime.jvm.gc.time
/runtime.jvm.gc.count
metrics withprocess.runtime.jvm.gc.duration
histogram (#6964)
🛠️ Bug fixes
- End reactor-netty HTTP client span properly on
Mono#timeout()
(#6891) - Capture net.host.name for netty (#6892)
- 6929 - fixing unit for runtime.jvm.gc.count (#6930)
- fix spring-webflux cast to PathPattern throws ClassCastException (#6872)
- Fix metric units (#6931)
- Fix RocketMQ ClassCastException on hook conflict (#6940)
- Handle UnsupportedClassVersionError in ServiceLoader on jdk9 (#7090)
- Avoid NPE when DirectWithAttributesChannel class is not available (#7133)
🧰 Tooling
- Revert removing the mavenCentral repo from the muzzle check plugin (#6937)
- Make java.sql classes available to the agent and extensions (#7038)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@aaron-ai
@arik-dig
@bherbst
@breedx-splk
@dboreham
@dharmanshujohar
@edysli
@IcebergXTY
@izeye
@jack-berg
@jkamke
@jkwatson
@kelystor
@laurit
@mateuszrzeszutek
@maurolscla
@PeterF778
@rapphil
@ryandens
@sharp-pixel
@svrnm
@theletterf
@trask
@wang007
Version 1.19.2
This is a patch release on the previous 1.19.1 release, fixing the issue(s) below.
🛠️ Bug fixes
- Bring back two public methods in
opentelemetry-instrumentation-api-semconv
that were mistakenly removed in v1.19.1 without a deprecation cycle (#7020)
Version 1.19.1
This is a patch release on the previous 1.19.0 release, fixing the issue(s) below.
🛠️ Bug fixes
- Capture
net.host.name
on netty SERVER spans (#6892)
Version 1.19.0
This release targets the OpenTelemetry SDK 1.19.0.
Note that all artifacts other than io.opentelemetry.javaagent:opentelemetry-javaagent
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
- Deprecated
HttpServerAttributesGetter.serverName()
, and removedhttp.host
andhttp.server_name
attributes (#6709) - Removed previously deprecated configuration flags (see previous release notes for deprecations) (#6771)
- The restlet-1 instrumentation name has changed from
restlet-1.0
torestlet-1.1
(#6106)
🌟 New library instrumentation
- Netty 4.1 (#6820)
📈 Enhancements
- Move in resource providers from core repo (#6574)
- Propagate client span context in doOnRequest (#6621)
- Update attribute key of rocketmq's message tag to use name from semantic conventions (
messaging.rocketmq.message_tag
) (#6677) - Avoid muzzle matcher warning for the spring-boot-actuator-autoconfigure instrumentation (#6695)
- Add marker attribute for Log4j 2 (#6680)
- Add marker attribute for Logback (#6652)
- Add daemon attribute to process.runtime.jvm.threads.count (#6635)
- Link JMS receive span with the producer span (#6804)
- Link RabbitMQ receive span with the producer span (#6808)
- Run context customizers before span start instead of after (#6634)
- Strip sensitive data from the url (#6417)
- Extract
net.peer.{name,port}
on start for CLIENT spans (#6828)
🛠️ Bug fixes
- Fix scheduled job experimental attributes property (#6633)
- Fix AutoConfigurationCustomizer.addPropertiesSupplier not taking into account configuration-file (#6697)
- Fix Dubbo NPE and trace propagation issue (#6640)
- Fix directory separator in ProcessResource attributes (#6716)
- Fix instrumentation for tomcat 10.1.0 (#6766)
- Fix instrumentation name for jaxrs-2.0-annotations (#6770)
- Fix instrumentation for vert.x 4.3.4 (#6809)
- Fix Restlet v2
Message#getAttributes
calls (#6796) - Guard against null HttpContext (#6792)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@aaron-ai
@breedx-splk
@caalador
@chenjiazhix
@fcrespel
@iNikem
@jack-berg
@jamesmartinpp
@JanStrauss
@jeanbisutti
@jonatan-ivanov
@laurit
@MALPI
@mateuszrzeszutek
@mgevantmakher
@pellared
@ramatudaan
@theletterf
@trask
@tuhao1020
@twjbz
@yingziisme