Skip to content

Releases: open-telemetry/opentelemetry-java-instrumentation

Version 1.7.1

27 Oct 23:08
Compare
Choose a tag to compare

This is a patch release on the previous 1.7.0 release, fixing the three issues below. If you are not affected by these, you do not need to update.

🛠️ Bug fixes

  • Java agent 1.7.0 fails with prometheus exporter (#4460)
  • Android regression in okhttp instrumentation in 1.7.0 (#4452)
  • Remove unshaded javax.annotation classes from bootstrap class loader (#4454)

Version 1.7.0

19 Oct 20:37
dce8c91
Compare
Choose a tag to compare

Note: with this release, the -all artifact has been removed and the default artifact (with no classifier) is now the go-to artifact that contains the exporters. If you want an artifact with no exporters, there is a new -slim artifact that is published to maven central. The -all artifact is still attached to this release below (it has the same content as the default artifact), but will no longer be attached to the releases starting from v1.8.0.

This release requires the use of OpenTelemetry Java SDK 1.7.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.

📈 Enhancements

  • Change the default javaagent artifact to have exporters, introduce new -slim artifact,
    and deprecate the -all artifact (#4106)
  • Support jlinked images without jdk.unsupported module (#4154, #4124)
  • Added experimental option to suppress messaging receive spans (#4187, #4204)
  • Refine 404 handling in Restlet instrumentation (#4206)
  • Remove dynamo db.name attribute (#4208)
  • Remove capturing http.url in server instrumentation in favor of http.scheme, http.host
    and http.target (#4209)
  • Intern db info to reduce memory consumption (#4263)
  • Better JAX-RS async cancel handling (#4279)
  • Extract HTTP request/response headers as span attributes (#4237, #4309, #4320, #4321, #4328, #4395)
  • Support kafka streams 3 (#4236)
  • AWS lambda - improvements in custom type handling in wrappers, SQS event wrapper added (#4254)
  • Add code attributes to quartz spans (#4332)
  • Collect more attributes from servlet instrumenter (#4356)
  • Allow reactor instrumentation to pick up spans from reactor context (#4159)
  • Hide virtual field accessor interface methods from reflection (#4390)

🛠️ Bug fixes

  • Fix spring context reload issue (#4051)
  • Remove incorrect lettuce db.statement attribute (#4160)
  • Fix tomcat async spans (#4339)

🧰 Tooling

  • Add start/end time to RequestListener (#4155)
  • Add context customizer hook to Instrumenter API (#4167)
  • Transform lambda classes (#4182)
  • Separate HTTP client/server AttributesExtractors (#4195)
  • Introduce muzzle-specific interface to InstrumentationModule (#4207)
  • Make it possible to use InstrumentationContext (now VirtualField) from library instrumentation (#4218)
  • Add functionality to generate API changes (#4285)
  • Split NetAttributesExtractor into NetClientAttributesExtractor and NetServerAttributesExtractor (#4287)
  • Back VirtualField with a volatile field (#4355)
  • Convert AttributesExtractor to interface (#4363)
  • Rename some *InstrumenterBuilder classes to *InstrumenterFactory (#4391)
  • rename newBuilder() to builder() (#4407)

🙇 Thank you

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

@alesj
@anuraaga
@aras112
@ben-manes
@breedx-splk
@brunojcm
@dengliming
@Enkelian
@frommeyerc
@GlowingRuby
@HaloFour
@HyunGook-Kim
@iNikem
@jack-berg
@jantekb
@jkwatson
@kubawach
@laurit
@lmolkova
@MartinDai
@mateuszrzeszutek
@michaelbannister
@Oberon00
@pavolloffay
@shivanshu1333
@theletterf
@trask

Version 1.6.2

30 Sep 02:01
Compare
Choose a tag to compare

This is a patch release on the previous 1.6.0 and 1.6.1 releases, fixing the one issue below that arose during the 1.6.1 patch release.

If you are not affected by this, you do not need to update.

🛠️ Bug fixes

  • The 1.6.1 patch release was not backwards compatible with javaagent extensions built against 1.6.0 (#4245)

Version 1.6.1

29 Sep 17:31
Compare
Choose a tag to compare

⚠️ There was a problem with this patch release which breaks javaagent extensions if you are using them.


This is a patch release on the previous 1.6.0 release, fixing the one issue below. If you are not affected by this, you do not need to update.

🛠️ Bug fixes

  • Fix possible JDBC instrumentation deadlock (#4191)

Version 1.6.0

18 Sep 18:56
15cfcfa
Compare
Choose a tag to compare

This release requires the use of OpenTelemetry Java SDK 1.6.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.

🌟 New javaagent instrumentation

  • Add instrumentation for Quartz 2.0 (#4017)
  • Restlet instrumentation (#3946)

🌟 New library instrumentation

  • Add instrumentation for Quartz 2.0 (#4017)
  • Restlet instrumentation (#3946)

📈 Enhancements

  • Extract Jedis 3 net attributes from InetSocketAddress (#3912)
  • Add option to suppress controller and view spans (#3865)
  • Capture http.user_agent for AsyncHttpClient (#3930)
  • Instrument spring-kafka batch message listeners (#3922)
  • Use unsafe to inject classes to the bootstrap class loader (#4026)
  • Some performance optimizations (#4004, #4006, #4008, #4013, #4014)
  • Do not fallback to net attributes for http.client_ip (#4063)
  • Start a CONSUMER span for Kafka poll() (#4041)
  • Support otlp http exporter (#4068)
  • Better grpc events (#4098)

🛠️ Bug fixes

  • Bridge span keys defined in instrumentation-api (#3911)
  • Hide generated fields and methods from reflection (#3948)
  • Remove invalid message header (#3958)
  • Fix memleak in the Netty ChannelPipeline instrumentation (#4053)
  • Fix grpc instrumentation of callbacks (#4097)
  • Bridge trace builder (#4090)
  • Remove original handler when removelast in netty (#4123)

🧰 Tooling

  • Deprecate old extensions (#3825)
  • Add request parameter to EndTimeExtractor (#3947)
  • Make Config behave exactly as SDK DefaultConfigProperties (#4035)
  • Fix extension shading (#4064)
  • Add error parameter to EndTimeExtractor and AttributesExtractor#onEnd() (#3988)
  • Allow adding multiple ContextStore fields to one key class (#4067, #4084, #4110)

🙇 Thank you

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

@anuraaga
@arm-chair
@asuresh4
@breedx-splk
@carlosalberto
@dengliming
@dmatscale
@edwardxia
@Enkelian
@evantorrie
@HaloFour
@iNikem
@jack-berg
@jkwatson
@jsuereth
@klboke
@kubawach
@laurit
@lmolkova
@mateuszrzeszutek
@mcmho
@meSunnySrivastava
@michaelbannister
@previousdeveloper
@ryandens
@shivanshu1333
@trask
@tydhot
@willarmiros
@zhq734
@zmapleshine

Version 1.5.3

31 Aug 22:35
Compare
Choose a tag to compare

This release requires the use of OpenTelemetry Java SDK 1.5.0.

This is a patch release on the previous 1.5.x releases, fixing the one issue below. If you are not affected by this, you do not need to update.

🛠️ Bug fixes

  • Fix parsing of unclean map values in Config (#4032)

Version 1.5.2

27 Aug 14:53
Compare
Choose a tag to compare

This release requires the use of OpenTelemetry Java SDK 1.5.0.

This is a patch release on the previous 1.5.0 and 1.5.1 releases, fixing the one issue below.

It is recommended that all users of 1.5.0 and 1.5.1 update to this patch release.

🛠️ Bug fixes

  • Fix unbounded metrics cardinality, which in particular causes memory leak when not using any metrics exporter (#3972)

Version 1.5.1

25 Aug 04:54
2991cd2
Compare
Choose a tag to compare

⚠️ There is a memory leak in the recent 1.5.0 and 1.5.1 releases of the Java agent that will likely impact anyone who is not using a metrics exporter. Please use the 1.5.2 release instead.


This release requires the use of OpenTelemetry Java SDK 1.5.0.

This is a patch release on the previous 1.5.0 release, fixing the three issues below. If you are not affected by any of these issues, you do not need to update.

🛠️ Bug fixes

  • Fix broken Android level 21-25 support in OkHttp 3 library instrumentation (#3910)
  • Fix maven central pom file for the opentelemetry-javaagent artifact (#3929)
  • Fix maven central pom file for the opentelemetry-agent-for-testing artifact (#3935)

Version 1.5.0

22 Aug 20:41
052d00d
Compare
Choose a tag to compare

⚠️ There is a memory leak in the recent 1.5.0 and 1.5.1 releases of the Java agent that will likely impact anyone who is not using a metrics exporter. Please use the 1.5.2 release instead.


🌟 New library instrumentation

  • Library instrumentation for Apache HTTP Client 4.3 (#3623)
  • Library instrumentation for Ratpack server (#3749)

📈 Enhancements

  • Support Couchbase 3.2.0 (#3645)
  • Handle port and IPv6 in forwarded headers (#3651)
  • Set real Hibernate span name on method entry to help samplers (#3603)
  • Reduce overhead of unsampled requests (#3681)
  • Sanitize SQL in Apache Camel instrumentation (#3683, #3717)
  • Add option to create span on new netty connection (#3707)
  • Propagate context into jdk http client callback (#3719)
  • Instrument Tomcat executor to support async servlets in new Tomcat 9.0.52 release (#3789)
  • Add otlp-logging exporter (#3807)
  • Add new option to support capturing nested client spans of different types (#3691)
  • Propagate context to lettuce callbacks (#3839)
  • Instrument ForkJoinTask.fork() (#3849)
  • Implement a Call.Factory for okhttp 3.x+ library instrumentation (#3812)
  • Record exception in Dubbo instrumentation (#3851)
  • Propagate context to elasticsearch callbacks (#3858, #3861)
  • Added Vertx http client 4 instrumentation (#3665)
  • Make empty agent bridged context equal root context (#3869)

🛠️ Bug fixes

  • Fix OkHttp 3 correlation when using callback under concurrency (#3669, #3676)
  • Fix Netty span not captured on read timeout (#3613)
  • Fix Netty connection failure handling when listener is lambda (#3569)
  • Fix NullPointerException in Apache HttpAsyncClient instrumentation (#3692)
  • Fix NullPointerException in Tomcat instrumentation (#3705)
  • Fix Apache HttpClient telemetry when host and absolute URI are used (#3694)
  • Fix JDK http client should propagate even when sampled out (#3736)
  • Limit netty exception capture to netty spans (#3809)
  • Fix jetty httpclient returning empty response when instrumented (#3831, #3833)
  • Don't clobber user decorators in Armeria client instrumentation (#3873)
  • Use valid Java identifiers for message keys (#3863)
  • Fix ClassNotFoundException: HandlerMappingResourceNameFilter in some ear deployments (#3718)

🧰 Tooling

  • Improve extension sample documentation and add it to the README file (#3656)
  • Extract muzzle check plugin (#3657)
  • Move instrumentation specific classes out of javaagent-instrumentation-api (#3604, #3763)
  • Fill http.client_ip in ServerInstrumenter (#3756)
  • Fix printMuzzleReferences gradle task (#3808)
  • Introduce stable property for external extensions (#3823)
  • Run tests on j9 JVM during CI (#3764)
  • Support looking up a ContextStore from outside of Advice (#3827)
  • Deprecate MetricExporterFactory (#3862)
  • Don't pass configuration to SDK autoconfigure through system props (#3866)
  • Rename Config get*Property() methods to get*() (#3881)

🙇 Thank you

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

@anuraaga
@breedx-splk
@caniszczyk
@dengliming
@Enkelian
@HaloFour
@iNikem
@jack-berg
@jkwatson
@jsuereth
@kubawach
@laurit
@lmolkova
@mateuszrzeszutek
@michaelbannister
@mijingling
@necrolyte2
@randomanderson
@robododge
@seshness
@theletterf
@trask
@tydhot
@tylerbenson
@vovencij
@WillsonHG
@zmapleshine

Version 1.4.1

29 Jul 21:25
db7bc95
Compare
Choose a tag to compare

This release requires the use of OpenTelemetry Java SDK 1.4.1. It is a patch release on the previous one fixing a regression in the Apache HttpAsyncClient instrumentation. If you do not use this, you do not need to update.

🛠️ Bug fixes

  • Fix NPE in Apache HttpAsyncClient instrumentation (#3692)