Skip to content

Releases: open-telemetry/opentelemetry-java-instrumentation

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

Version 1.16.0

19 Jul 19:51
85acfd1
Compare
Choose a tag to compare

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

  • Config has been replaced by ConfigProperties in Javaagent extensions SPIs
  • The deprecated TimeExtractor has been removed
  • The opentelemetry-instrumentation-api-annotation-support artifact has been renamed to opentelemetry-instrumentation-annotation-support
  • The opentelemetry-annotations instrumentation suppression key has been renamed to opentelemetry-extension-annotations
  • The 'otel.javaagent.experimental.use-noop-api' flag has been removed, as this capability is now available via the otel.experimental.sdk.enabled flag

🌟 New javaagent instrumentation

  • C3P0 connection pool metrics (#6174)
  • JVM buffer pool metrics (#6177)
  • Kafka client metrics (#6138)
  • dropwizard-metrics to OpenTelemetry metrics bridge (#6259)

🌟 New library instrumentation

  • C3P0 connection pool metrics (#6174)
  • JVM buffer pool metrics (#6177)
  • Kafka client metrics (#6138)
  • Add metrics & micrometer support to spring-boot-autoconfigure (#6270)
  • Spring Kafka library instrumentation (#6283)

📈 Enhancements

  • Update GraphQL instrumentation to match spec (#6179)
  • Make rpc.grpc.status_code required (#6184)
  • Always pass Context when recording HttpServerMetrics (#6223)
  • Capture enduser.id in servlet instrumentation (#6225)
  • Support metric view configuration file in the Javaagent (#6228)
  • Aws sdk2 sqs context propagation (#6199)
  • More Spring JMS support (#6308)
  • Hikaricp: Avoid registering duplicate metrics (#6325)

🛠️ Bug fixes

  • Fix liberty net.peer.port (#6274)

🙇 Thank you

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

@agoallikmaa
@amoscatelli
@anosek-an
@anuraaga
@breedx-splk
@brunobat
@cuichenli
@danielqsj
@eric-spence-code
@GrahamLea
@HashemTaheriSonos
@jack-berg
@jeanbisutti
@jkwatson
@jkwatson-verta
@laurit
@lmolkova
@mateuszrzeszutek
@mikelaspina
@opentelemetry-java-bot
@shreya22-1998
@syr
@trask
@urwah1996
@zackman0010

Version 1.15.0

17 Jun 03:29
f0f5f6d
Compare
Choose a tag to compare

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

  • The opentelemetry-jboss-logmanager-1.1 artifact has been renamed to opentelemetry-jboss-logmanager-appender-1.1
  • The play instrumentation name has changed from play to play-mvc (#6106)
  • The vertx-http-client instrumentation name has changed from vertx-client to vertx-http-client (#6106)
  • The metric process.runtime.java.memory.max has been renamed to process.runtime.java.memory.limit (#6161)

🌟 New javaagent instrumentation

  • JVM classes metrics (#6069)
  • JVM threads metrics (#6070)
  • Vibur DBCP connection pool metrics (#6092)
  • tomcat-jdbc connection pool metrics (#6102)
  • JVM cpu metrics (#6107)
  • Oracle UCP connection pool metrics (#6099)
  • Apache DBCP2 datasource metrics (#6175)
  • Add instrumentation for JAX-RS 3.0 (#6136)

🌟 New library instrumentation

  • JVM classes metrics (#6069)
  • JVM threads metrics (#6070)
  • Vibur DBCP connection pool metrics (#6092)
  • tomcat-jdbc connection pool metrics (#6102)
  • JVM cpu metrics (#6107)
  • Oracle UCP connection pool metrics (#6099)
  • Apache DBCP2 datasource metrics (#6175)

📈 Enhancements

  • Enable grizzly instrumentation by default (#6049)
  • Instrumentation for redisson 3.17.2+ (#6096)
  • Instrumentation for jboss-logmanager getMdcCopy() (#6112)
  • Allow specifying a comma separated list of extensions (#6137)

🛠️ Bug fixes

  • Fix redisson ClassCastException (#6054)
  • Fix debug logging (#6085)
  • HttpURLConnection instrumentation can capture wrong http.method (#6053)
  • fix bug: get return type in a wrong way for method instrumentation (#6118)
  • Show correct runnable name in spring scheduling actuator (#6140)
  • Fix ClassCastException in JDBC instrumentation (#6088)

🧰 Tooling

  • Remove TimeExtractor and use internal API for setting start/end timestamps (#6051)
  • Change SpanStatusExtractor to use a builder that can set status description (#6035)
  • Make gRPC metadata available to AttributeExtractors (#6125)

Thank you

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

@agoallikmaa
@ahus1
@anuraaga
@axelczk
@breedx-splk
@claussenj
@cykl
@darcydai
@evantorrie
@felipebonezi
@HaloFour
@hboutemy
@jack-berg
@jeanbisutti
@laurit
@mateuszrzeszutek
@Roiocam
@trask
@tydhot
@vasireddy99

Version 1.14.0

17 May 19:14
0cd96e7
Compare
Choose a tag to compare

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

  • The opentelemetry-log4j-appender-2.16 artifact has been renamed to opentelemetry-log4j-appender-2.17
  • The opentelemetry-log4j-context-data-2.16-autoconfigure artifact has been renamed to opentelemetry-log4j-context-data-2.17-autoconfigure
  • Micrometer library instrumentation has been removed as it has been moved to the core repo and is now published under io.opentelemetry:opentelemetry-micrometer1-shim
  • The rxjava javaagent instrumentation names for suppression have changed to rxjava
  • AgentListener#beforeAgent() has been deprecated, as it is not expect to be needed by extensions authors
  • ConfigPropertySource has been deprecated in favor of ConfigCustomizer
  • Several changes in the Instrumentation API - RequestMetrics has been renamed to OperationMetrics - RequestListener has been renamed to OperationListener - ErrorCauseExtractor#extractCause() has been renamed to extract() - ContextCustomizer and RequestListener start()/end() methods have been renamed to onStart()/onEnd()
  • The opentelemetry-javaagent-instrumentation-api artifact has been merged into the opentelemetry-javaagent-extension-api artifact

🌟 New javaagent instrumentation

  • Add jboss-logmanager mdc support (#5842)
  • Spring-kafka single record instrumentation (#5904)
  • Add metrics instrumentation for grpc (#5923)
  • Add vertx-kafka-client instrumentation (#5973, #5982)
  • Hide the GC runtime metrics behind an experimental config flag (#5990)
  • Add HikariCP connection pool metrics (#6003)

🌟 New library instrumentation

  • Add metrics instrumentation for grpc (#5923)
  • Add HikariCP library instrumentation (#6023)

📈 Enhancements

  • Enable span suppression by SpanKey by default (#5779)
  • record exception in dubbo high version (#5892)
  • Introduce LocalRootSpan (replacing ServerSpan) (#5896)
  • Add javaagent<->application context bridge for HttpRouteHolder (#5838)
  • Exclude spring temporary type matching class loader (#5912)
  • Load agent classes child first (#5950)
  • Avoid looking up annotation types during type matching (#5906)
  • Add an SPI for customizing Config just before it's set (#6010)

🛠️ Bug fixes

  • Fix duplicate class error on Android build (#5882)
  • Avoid npe in netty 4.1 instrumentation (#5902)
  • Fix logging exporter autoconfiguration issue (#5928)
  • fix NPE for commons-httpclient v3.1 (#5949)
  • Exclude duplicate project classes from inst/ (#5957)
  • Ignore known problematic jdbc wrappers (#5967)
  • Fix default enabled for runtime and oshi metrics (#5989)
  • Mitigate against another kafka leak (#6021)

🙇 Thank you

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

@anuraaga
@breedx-splk
@chenjazz
@chronosa
@cuichenli
@dgradecak
@Enkelian
@HughPowell
@iNikem
@IraSkyx
@jack-berg
@jprinet
@kelystor
@laurit
@mateuszrzeszutek
@pkgonan
@shreya22-1998
@trask
@tydhot
@wallezhang

Version 1.13.1

22 Apr 16:30
74f16c0
Compare
Choose a tag to compare

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

🛠️ Bug fixes

  • Fix duplicate class error on Android build (#5882)
  • Fix spring-kafka single record instrumentation (#5904)

Version 1.13.0

19 Apr 01:52
af00f9c
Compare
Choose a tag to compare

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

  • Micrometer instrumentation is now automatically applied to spring-boot-actuator apps
  • Some configuration properties have been renamed:
    • otel.instrumentation.common.experimental.suppress-controller-spans -> otel.instrumentation.common.experimental.controller-telemetry.enabled (important: note that the meaning is inverted)
    • otel.instrumentation.common.experimental.suppress-view-spans -> otel.instrumentation.common.experimental.view-telemetry.enabled (important: note that the meaning is inverted)
    • otel.instrumentation.netty.always-create-connect-span -> otel.instrumentation.netty.connection-telemetry.enabled
    • otel.instrumentation.reactor-netty.always-create-connect-span -> otel.instrumentation.reactor-netty.connection-telemetry.enabled
  • Runtime memory metric names were updated to reflect semantic conventions
  • Micrometer library instrumentation has been deprecated as it has been moved to the core repo and is now published under io.opentelemetry:opentelemetry-micrometer1-shim
  • Library instrumentation entry points have been renamed from *Tracing to *Telemetry

🌟 New javaagent instrumentation

  • GraphQL (#5583)
  • JBoss Log Manager (#5737)
  • Apache HttpClient 5.x async client (#5697)

🌟 New library instrumentation

📈 Enhancements

  • Elasticsearch rest client low cardinality span names (#5584)
  • Implement "Prometheus mode" for better micrometer->OTel->Prometheus support (#5537)
  • Apply micrometer instrumentation to spring-boot-actuator apps (#5666)
  • Sql sanitizer: handle double quoted table names (#5699)
  • Spring Boot Starter service-name is constant (#5359)
  • Update runtime memory metrics to reflect semantic conventions (#5718)
  • change rpc type in apache dubbo (#5432)
  • Rework context propagation to redisson async callback (#5748)
  • Resolve end strategy after WithSpan method instead of before. (#5756)
  • Allow scanning instrumented reactor publishers and only allow registe… (#5755)
  • Faster type matching (#5724)
  • Use UnsynchronizedAppenderBase as base class for our logback appender (#5818)
  • Do not set the http.route attribute in JSF instrumentations (#5819)
  • Use micrometer1-shim in micrometer javaagent instrumentation, deprecate library instrumentation (#5820)
  • Rename netty always-create-connect-span property to connection-telemetry (#5834)
  • Update the http.route attribute even for not sampled server spans (#5844)

🛠️ Bug fixes

  • Fix possible deadlock (#5585)
  • Prevent possible deadlock in downstream distro (#5830)
  • Limit problems from kafka iterator instrumentation thread context leak (#5826)

🧰 Tooling

  • Remove deprecated methods from instrumentation-api and library instrumentations (#5575)
  • Split out RpcAttributesGetter (#5548)
  • Run tests with jdk17 (#5598)
  • Split out MessagingAttributesGetter (#5626)
  • Run Gradle and compile code with Java 17 (#5623)
  • Rename library entrypoints to Telemetry (#5624)
  • Add InstrumenterBuilder.addRequestListener (#5655)
  • Simplify HttpUrlConnection instrumentation (#5673)
  • Convert all logging statements from slf4j to jul (#5674)
  • Allows passing an OpenTelemetry instance to registerObservers() methods. (#5716)
  • Make it possible to register multiple helper resources under the same… (#5703)
  • Split out instrumentation-api-semconv (#5721)
  • Move ClassNames & SpanNames to .util package (#5746)
  • Library instrumentation should read its version from a file (#5692)
  • Rename view and controller suppression config properties (#5747)
  • Deprecate AttributesExtractor#set() method (#5749)
  • Cleanup Config & ConfigBuilder API (#5733)
  • Instrumenter instrumentation version and schema url (#5752)

🙇 Thank you

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

@anuraaga
@anuragagarwal561994
@aschugunov
@breedx-splk
@cartermp
@cbos
@chalin
@chenjazz
@cuichenli
@f00b455
@gquintana
@ianmcorvidae
@iNikem
@irizzant
@jack-berg
@jenarros
@jiwen624
@jkwatson
@jord1e
@jprinet
@laurit
@mateuszrzeszutek
@neiser
@pavolloffay
@theletterf
@trask
@tydhot
@wallezhang
@zoranzaric

Version 1.12.1

23 Mar 23:52
daf707a
Compare
Choose a tag to compare

This is a patch release on the previous 1.12.0 release, fixing the issues below.

🛠️ Bug fixes

  • Elasticsearch rest client low cardinality span name (#5584)
  • Fix possible deadlock (#5585)