Skip to content

Releases: open-telemetry/opentelemetry-java-instrumentation

Version 1.22.0

12 Jan 20:09
525b4f0
Compare
Choose a tag to compare

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

13 Dec 23:36
4cb16c7
Compare
Choose a tag to compare

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

22 Nov 00:51
9cc1b55
Compare
Choose a tag to compare

This is a patch release on the previous 1.20.1 release, fixing the issue(s) below.

🛠️ Bug fixes

Version 1.20.1

19 Nov 01:48
742c6c7
Compare
Choose a tag to compare

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

17 Nov 05:21
cfebc8d
Compare
Choose a tag to compare

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 to otel.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) and HttpServerAttributesExtractor#builder(HttpServerAttributesGetter) (#7020)
  • Renamed annotation instrumentation property name for the recent opentelemetry-instrumentation-annotations package from otel.instrumentation.opentelemetry-annotations.exclude-methods to otel.instrumentation.opentelemetry-instrumentation-annotations.exclude-methods (#7196)

🌟 New javaagent instrumentation

  • OpenSearch 1.x and 2.x (#6998)
  • JMX Metric Insight (#6573)

📈 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 with process.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

02 Nov 02:55
4a548cb
Compare
Choose a tag to compare

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

19 Oct 23:22
1540a22
Compare
Choose a tag to compare

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

13 Oct 00:02
d75d293
Compare
Choose a tag to compare

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 removed http.host and http.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 to restlet-1.1 (#6106)

🌟 New library instrumentation

📈 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

Version 1.18.0

14 Sep 22:50
b0738a5
Compare
Choose a tag to compare

This release targets the OpenTelemetry SDK 1.18.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.

The opentelemetry-instrumentation-api artifact is declared stable in this release.

Migration notes

  • There were a few late-breaking changes in opentelemetry-instrumentation-api, prior to it being declared stable:
    • InstrumenterBuilder.addAttributesExtractors(AttributesExtractor...) was removed, use instead addAttributesExtractors(AttributesExtractor) or addAttributesExtractors(Iterable<AttributesExtractor>)
    • SpanLinksExtractor.extractFromRequest() was removed, use instead manual extraction
    • ErrorCauseExtractor.jdk() was renamed to ErrorCauseExtractor.getDefault()
    • ClassNames utility was removed with no direct replacement
  • The deprecated io.opentelemetry.instrumentation.api.config.Config and related classes have been removed (#6501)
  • Net attributes getters were updated to reflect latest specification changes (#6503)
  • The deprecated Ordered interface was removed from the opentelemetry-javaagent-extension-api, use instead the Ordered interface from opentelemetry-sdk-extension-autoconfigure-spi (#6589)

📈 Enhancements

  • Add Spring Boot service name guesser / ResourceProvider (#6516)
  • Move micrometer shim library instrumentation back (#6538)
  • Add grpc status code to metrics attrs (#6556)
  • Add mongo sanitization configuration (#6541)
  • Add kafka client metrics to the javaagent instrumentation (#6533)
  • Add experimental span attribute job.system (#6586)
  • Add code attributes for Logback (#6591)
  • Reactor instrumentation: do not make root context current (#6593)

🛠️ Bug fixes

  • Fix default-enabled config (#6491)
  • Fix new jdbc javaagent config (#6492)
  • Fix jaxrs async instrumentation race (#6523)
  • Fix spring webmvc instrumentation name (#6557)
  • Fix spring boot @WithSpan handling (#6619)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@breedx-splk
@cartermp
@chalin
@jack-berg
@jeanbisutti
@laurit
@lmolkova
@mateuszrzeszutek
@mingchuno
@ppatierno
@Shivanireddie
@trask

Version 1.17.0

18 Aug 21:32
7cc3340
Compare
Choose a tag to compare

This release targets the OpenTelemetry SDK 1.17.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.

This release of the opentelemetry-instrumentation-api represents a release candidate for this artifact, and we are expecting this artifact to be declared stable in the next month or two.

Migration notes

  • The @WithSpan and @SpanAttribute annotations has been moved from the io.opentelemetry:opentelemetry-extension-annotations artifact to the io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations in order to live and evolve alongside the instrumentation itself. The instrumentation will continue to support the old artifact for backwards compatibility, but new annotation-based features will only be built out and supported with the new annotation artifact.
  • InstrumenterBuilder.newInstrumenter() is renamed to InstrumenterBuilder.buildInstrumenter() (#6363)
  • io.opentelemetry.instrumentation.api.config.Config is deprecated (#6360)
  • HttpCommonAttributesGetter.requestContentLengthUncompressed() and responseContentLengthUncompressed are deprecated (#6383)
  • Ktor 2.0 instrumentation name is changed from io.opentelemetry.ktor-1.0 to io.opentelemetry.ktor-2.0 (#6452)
  • io.opentelemetry.opentelemetry-annotations-1.0 instrumentation name is changed to io.opentelemetry.opentelemetry-instrumentation-annotations-1.16 (#6450)
  • Liberty instrumentation names are changed from io.opentelemetry.liberty and io.opentelemetry.liberty-dispatcher to io.opentelemetry.liberty-20.0 and io.opentelemetry.liberty-dispatcher-20.0 (#6456)
  • The 2-arg variant of HttpCommonAttributesGeter#statusCode() is deprecated (#6466)
  • The opentelemetry-spring-starter artifact has been renamed to opentelemetry-spring-boot-starter, the opentelemetry-otlp-exporter-starter artifact has been removed and is now directly a part of the opentelemetry-spring-boot-starter artifact, the opentelemetry-zipkin-exporter-starter artifact has been renamed to opentelemetry-zipkin-spring-boot-starter, and the opentelemetry-zipkin-exporter-starter artifact has been renamed to opentelemetry-zipkin-spring-boot-starter (#6453)
  • Update net semantic convention changes based on recent specification changes: net.peer.ip renamed to net.sock.peer.addr, net.host.ip renamed to net.sock.host.addr, net.peer.name renamed to net.sock.peer.name for socket-level instrumentation, and NetClientAttributesGetter.peerIp(), NetServerAttributesGetter.peerIp(), and NetServerAttributesGetter.peerPort() are deprecated (#6268)

📈 Enhancements

  • Move buffer pool metrics out of experimental (#6370)
  • Add code attributes to several instrumentations (#6365)
  • Add http.client|server.request|response.size metrics (#6376)
  • Add Kafka instrumentation to the Spring Boot starter (#6371)
  • Extract HTTP request & response content length from headers (#6415)
  • Support DataDirect and Tibco Jdbc URLs (#6420)
  • Set http.route in spring-autoconfigure webmvc instrumentation (#6414)
  • Grizzly: capture all matching request & response headers (#6463)
  • Capture messaging header value as span attribute (#6454)
  • Add JDBC-specific sanitizer property (#6472)

🛠️ Bug fixes

  • Fix duplicate spans for Quarkus gRPC server (#6356)
  • Update Kafka library instrumentation to support version 3.0.0 and later (#6457)
  • Mongodb: avoid duplicate tracing (#6465)
  • Fix netty instrumentation NoSuchElementException (#6469)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@anuraaga
@breedx-splk
@cuichenli
@drewhammond
@dzydzany
@gquintana
@iNikem
@jack-berg
@jkwatson
@laurit
@lmolkova
@mateuszrzeszutek
@mingchuno
@ppatierno
@snicoll
@trask
@urwah1996
@XSAM
@zackman0010
@ziitizen