Skip to content

Releases: open-telemetry/opentelemetry-java-instrumentation

Version 1.33.3

21 May 11:35
6695408
Compare
Choose a tag to compare

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

📈 Enhancements

  • Backport: Fix the logic to get container.id resource attribute (#11333)
  • Backport: Update the OpenTelemetry SDK version to 1.38.0 (#11386)
  • Backport: Fix a bug in undertow instrumentation related to HTTP/2 (#11387)
  • Backport: Fix container.id issue in some crio scenarios (#11405)

Version 2.4.0

18 May 03:15
0975f66
Compare
Choose a tag to compare

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

📈 Enhancements

  • Instrument ConnectionSource in Akka/Pekko HTTP Servers (#11103)
  • Use constant span name when using Spring AMQP AnonymousQueues (#11141)
  • Add support for RestClient in Spring starter (#11038)
  • Add support for WebFlux server in Spring starter (#11185)
  • Add async operation end strategy for Kotlin coroutines flow (#11168)
  • Add automatic JDBC instrumentation to the Spring starter (#11258)
  • Add StructuredTaskScope instrumentation (#11202)
  • Allow reading OTel context from reactor ContextView (#11235)
  • Add spring starter r2dbc support (#11221)
  • Enable instrumentation of Spring EJB clients (#11104)
  • Support otel.instrumentation.kafka.experimental-span-attributes in Spring starter (#11263)
  • Remove incubating semconv dependency from library instrumentation (#11324)
  • Add extension functions for Ktor plugins (#10963)
  • Add dedicated flag for R2DBC statement sanitizer (#11384)
  • Allow library instrumentations to override span name (#11355)
  • Don't sanitize PostgreSQL parameter markers (#11388)
  • Make statement sanitizer configurable for Spring Boot (#11350)

🛠️ Bug fixes

  • Fix GraphQL instrumentation to work with latest version (#11142)
  • Fix jmx-metrics on WildFly (#11151)
  • End gRPC server span in onComplete instead of close (#11170)
  • Fix a bug in undertow instrumentation related to HTTP/2 (#11361)
  • Armeria http client reports wrong protocol version (#11334)
  • Use daemon thread for scheduling in jmx-metrics BeanFinder (#11337)

🙇 Thank you

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

@123liuziming
@aaron-ai
@AlchemyDing
@ArtyomGabeev
@aschugunov
@breedx-splk
@cxjava
@dengliming
@ehsannas
@flamiau04
@hannahchan
@jaydeluca
@jeanbisutti
@jmadureira
@laurit
@LikeTheSalad
@lizongwu
@marychatte
@ofelbaum
@PeterF778
@philsttr
@steverao
@swar8080
@SylvainJuge
@trask
@v1v
@zackman0010
@zeitlinger

Version 1.33.2

20 Apr 12:13
d90f6f1
Compare
Choose a tag to compare

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

📈 Enhancements

  • Backport: elasticsearch-java 7.17.20 has native instrumentation (#11098)
  • Update the OpenTelemetry SDK version to 1.37.0 (#11118)
  • Backport: graphql-java-22.0 support (#11171)

Version 2.3.0

12 Apr 00:45
0f86a84
Compare
Choose a tag to compare

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

  • Handle async requests in spring mvc library instrumentation (#10868)
  • Support statement sanitizer enabled flag in lettuce 5.1 instrumentation (#10922)
  • Remove AWS Active Tracing span linking (#10930)
  • Make spring boot honor the standard environment variables for maps (#11000)
  • Pulsar: use span links when receive telemetry is enabled (#10650)
  • Rename messaging.kafka.destination.partition to messaging.destination.partition.id (#11086)
  • Support service.instance.id in spring starter (#11071)
  • Add library instrumentation for RestTemplateBuilder (#11054)
  • Add cloud resource providers in spring starter (#11014)

🛠️ Bug fixes

  • Fix disabling virtual thread context propagation (#10881)
  • Fix virtual thread instrumentation for jdk 21 ea versions (#10887)
  • Fix spring kafka interceptor wrappers not delegating some methods (#10935)
  • AWS Lambda Runtime legacy internal handlers need to be ignored from being instrumented and so traced … (#10942)
  • Metro: ignore UnsupportedOperationException when updating span name (#10996)
  • Fix jedis plugin for 2.7.2 (#10982)
  • Fix idle in druid instrumentation (#11079)

🙇 Thank you

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

@123liuziming
@AlchemyDing
@breedx-splk
@cleverchuk
@damienburke
@huange7
@itsmykairos
@jack-berg
@jaydeluca
@jeanbisutti
@johnbley
@JonasKunz
@laurit
@Moscagus
@phillipdriver
@rapphil
@robberphex
@serkan-ozal
@srinivas-bode
@steverao
@SylvainJuge
@Synthenses
@trask
@tylerbenson
@wang007
@xiangtianyu
@zeitlinger

Version 1.33.1

20 Mar 12:22
24fcdbf
Compare
Choose a tag to compare

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

📈 Enhancements

  • Backport: Capture http.route for akka-http (#10777)
  • Update the OpenTelemetry SDK version to 1.36.0 (#10866)

Version 2.2.0

14 Mar 22:37
ba611b5
Compare
Choose a tag to compare

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

  • Remove deprecated spring properties (#10454)

🌟 New javaagent instrumentation

  • Add cloud resource detectors in javaagent, but keep them disabled by default (#10754)
  • Add support for XXL-JOB (#10421)

📈 Enhancements

  • Don't fill network peer for cassandra SniEndPoint (#10573)
  • Spring boot starter: add service.version detection, improve service.name detection (#10457)
  • Always create a JMS consumer span (#10604)
  • Ability to disable the automatic Logback appender addition (#10629)
  • Allow excluding all methods of a class (#10753)
  • Preserve attribute type for logback key value pairs (#10781)
  • Add instrumentation for graphql 20 that does not use deprecated methods (#10779)
  • Capture http.route for pekko-http (#10799)
  • Normalize SQL IN(?, ?, ...) statements to "in(?)" to reduce cardinality of db.statement attribute (#10564)
  • Capture db.operation for CREATE/DROP/ALTER SQL statement (#10020)
  • Ignore AWS Lambda Runtime internal handlers (#10736)
  • Spring use SDK autoconfig (#10453)
  • Add manifest resource detector (#10621)
  • Add instrumentation for jetty 12 (#10575)
  • add host.id resource provider (#10627)

🛠️ Bug fixes

  • Don't fail spring application startup if sdk is disabled (#10602)
  • Fix shading aws propagator (#10669)
  • Disable http and rpc metrics when advice can not be applied (#10671)
  • Fix native tests (#10685)
  • Fix tomcat instrumentation when user includes wrong servlet api (#10757)
  • Override xray trace header instead of appending (#10766)
  • Fix spring boot starter failing without logback (#10802)
  • Fix spring kafka context leak when batch listener is retried (#10741)
  • Fix the logic to get container.id resource attribute (#10737)
  • Configure kafka metrics reporter as class (#10855)
  • Disable context propagation when virtual thread is switched to the carrier thread (#10854)

🙇 Thank you

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

@bbakerman
@bjrara
@breedx-splk
@cleverchuk
@crossoverJie
@dalbani
@dmarkwat
@freshchen
@gaeljw
@gdw2
@hatharom
@heyams
@jaydeluca
@jeanbisutti
@jkwatson-verta
@JonasKunz
@laurit
@liurui-1
@Moscagus
@paragniist
@pmitura-lucid
@qixiaogang
@samwright
@serkan-ozal
@steverao
@swar8080
@theletterf
@tkramarczyk-vgw
@trask
@tylerbenson
@wangzlei
@zeitlinger

Version 1.33.0

28 Feb 19:01
dbb12a1
Compare
Choose a tag to compare

This release targets the OpenTelemetry SDK 1.35.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 deprecated Jaeger exporter has been removed (#10524)

📈 Enhancements

  • Backport: Set route only on the SERVER span (#10580)
  • Update the OpenTelemetry SDK version to 1.35.0 (#10524)

Version 2.1.0

16 Feb 05:50
7bfa6a3
Compare
Choose a tag to compare

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

  • Deprecated config properties have been removed in favor of the new names:
    • otel.instrumentation.kafka.client-propagation.enabled -> otel.instrumentation.kafka.producer-propagation.enabled
    • otel.instrumentation.netty.always-create-connect-span -> otel.instrumentation.netty.connection-telemetry.enabled
    • otel.instrumentation.http.capture-headers.client.request -> otel.instrumentation.http.client.capture-request-headers
    • otel.instrumentation.http.capture-headers.client.response -> otel.instrumentation.http.client.capture-response-headers
    • otel.instrumentation.http.capture-headers.server.request -> otel.instrumentation.http.server.capture-request-headers
    • otel.instrumentation.http.capture-headers.server.response -> otel.instrumentation.http.server.capture-response-headers
    • otel.instrumentation.http.client.emit-experimental-metrics -> otel.instrumentation.http.client.emit-experimental-telemetry
    • otel.instrumentation.http.server.emit-experimental-metrics -> otel.instrumentation.http.server.emit-experimental-telemetry
      (#10349)
  • The deprecated Jaeger exporter has been removed (#10241)
  • Actuator instrumentation has been disabled by default. You can enable using OTEL_INSTRUMENTATION_SPRING_BOOT_ACTUATOR_AUTOCONFIGURE_ENABLED=true or -Dotel.instrumentation.spring-boot-actuator-autoconfigure.enabled=true. (#10394)
  • Spring starter: removed support for the deprecated @io.opentelemetry.extension.annotations.WithSpan annotation. Use @io.opentelemetry.instrumentation.annotations.WithSpan annotation instead. (#10530)

🌟 New javaagent instrumentation

  • MyBatis framework instrumentation (#10258)
  • Finagle instrumentation (#10141)

🌟 New library instrumentation

  • Apache HttpClient 5 instrumentation (#10100)

📈 Enhancements

  • Spring starter: add distro version resource attribute (#10276)
  • Add context propagation for rector schedulers (#10311)
  • Spring starter: automatic addition of the OTel Logback appender (#10306)
  • Spring starter: add resource detectors (#10277)
  • Allow closing the observables for System and Process metrics gathered by OSHI (#10364)
  • Spring starter: Allow to configure the OTel Logback appender from system properties (#10355)
  • Spring starter: re-use sdk logic for configuring otlp exporters (#10292)
    • All available spring starter properties (including the new properties) can be found
      here
    • You can also use auto-completion in your IDE to see the available properties in
      application.properties or application.yml
  • Spring starter: add SystemOutLogRecordExporter (#10420)
  • Spring starter: use duration parser of config properties (#10512)
  • Spring starter: support otel.propagators (#10408)
  • Set route only on the SERVER span (#10290)
  • Convert Apache HttpClient 4.3 library instrumentation to "low-level" HTTP instrumentation (#10253)

🛠️ Bug fixes

  • Fix log replay of the Log4j 2 appender (#10243)
  • Fix Netty addListener instrumentation (#10254)
  • Fix Calling shutdown() multiple times warning in spring starter (#10222)
  • Correctly fix NPE in servlet AsyncListener (#10250)
  • add @ConditionalOnMissingBean to LoggingMetricExporter (#10283)
  • Make Netty Instrumentation HttpServerRequestTracingHandler propagate "Channel Inactive" event to downstream according to parent contract (#10303)
  • Improve rediscala instrumentation to address sporadic test failure (#10301)
  • Undertow: restore attached context only when it is for different trace (#10336)
  • Reactor kafka wrapper delegates to wrong method (#10333)
  • Spring starter: add missing LoggingMetricExporterAutoConfiguration to spring factories (#10282)
  • Spring starter: Fix MapConverter does not get initialized if some exporters are turned off (#10346)
  • Update azure-core-tracing-opentelemetry version and fix double-collection for synchronous HTTP requests (#10350)
  • Allow OSGI dynamic import for io.opentelemetry package when matching (#10385)
  • Use direct peer address in client.address when X-Forwarded-For is not present (#10370)
  • Netty: don't expose tracing handler in handlers map (#10410)
  • Wrap request to avoid modifying attributes of the original request (#10389)
  • Fix JarAnalyzer warnings on Payara (#10458)
  • Return wrapped connection from Statement.getConnection() (#10554)
  • Spring starter: Fix otel.propagators (#10559)
  • Populate server.address and server.port in Cassandra instrumentation (#10357)

🧰 Tooling

  • Allow multiple invokedynamic InstrumentationModules to share classloaders (#10015)

🙇 Thank you

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

@AlchemyDing
@breedx-splk
@cartersocha
@cbeneke
@codeboten
@dmarkwat
@elbiocaetano
@hadesy
@heyams
@jack-berg
@jackshirazi
@jakub-pomykala
@jaydeluca
@jeanbisutti
@JonasKunz
@jonasrutishauser
@KayWu
@kenfinnigan
@laurit
@lichenglin
@lmolkova
@lukny
@manikmagar
@mmorel-35
@pellmont
@Periecle
@pmitura-lucid
@rgrochowicz
@rickardoberg
@Roiocam
@rvenancio
@shaykeren
@steverao
@SylvainJuge
@theletterf
@trask
@zeitlinger

Version 1.32.1

02 Feb 16:38
ea2e14a
Compare
Choose a tag to compare

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

📈 Enhancements

  • Backport: update jackson packages to v2.16.1 (#10198, #10199)
  • Backport: implement forEach support for aws sqs tracing list (#10195)
  • Backport: Bridge metric advice in OpenTelemetry API 1.32 (#10026)
  • Update the OpenTelemetry SDK version to 1.34.1 (#10320)

🛠️ Bug fixes

  • Backport: Handle authority from request when HttpHost is null (#10204)
  • Backport: Null check for nullable response object in aws sdk 1.1 instrumentation (#10029)
  • Backport: Make Netty Instrumentation HttpServerRequestTracingHandler propagate "Channel Inactive" event to downstream according to parent contract (#10303)
  • Backport: Fix Netty addListener instrumentation (#10254)
  • Backport: Update azure-core-tracing-opentelemetry version and fix sync suppression (#10350)

Version 2.0.0

12 Jan 22:19
39e7e9c
Compare
Choose a tag to compare

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

The 2.0.0 release contains significant breaking changes that will most likely affect all users, please be sure to read the breaking changes below carefully.

Note: 1.32.x will be security patched for at least 6 months in case some of the changes below are too disruptive to adopt right away.

⚠️⚠️ Breaking changes ⚠️⚠️

  • The default OTLP protocol has been changed from grpc to http/protobuf in order to align with the specification. You can switch to the grpc protocol using OTEL_EXPORTER_OTLP_PROTOCOL=grpc or -Dotel.exporter.otlp.protocol=grpc.
  • Micrometer metric bridge has been disabled by default. You can enable it using OTEL_INSTRUMENTATION_MICROMETER_ENABLED=true or -Dotel.instrumentation.micrometer.enabled=true.
  • The OTLP logs exporter is now enabled by default. You can disable it using OTEL_LOGS_EXPORTER=none or -Dotel.logs.exporter=none.
  • Controller spans are now disabled by default. You can enable them using OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_CONTROLLER_TELEMETRY_ENABLED=true or -Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true.
  • View spans are now disabled by default. You can enable them using OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_VIEW_TELEMETRY_ENABLED=true or -Dotel.instrumentation.common.experimental.view-telemetry.enabled=true.
  • ⚠️⚠️ Stable HTTP semantic conventions are now emitted ⚠️⚠️
    • TOO MANY CHANGES TO LIST HERE, be sure to review the full list of changes.
  • Stable JVM semantic conventions are now emitted.
    • Memory metrics

      • process.runtime.jvm.memory.usage renamed to jvm.memory.used
      • process.runtime.jvm.memory.committed renamed to jvm.memory.committed
      • process.runtime.jvm.memory.limit renamed to jvm.memory.limit
      • process.runtime.jvm.memory.usage_after_last_gc renamed to jvm.memory.used_after_last_gc
      • process.runtime.jvm.memory.init renamed to jvm.memory.init (still experimental)
      • Metric attributes:
        • type renamed to jvm.memory.type
        • pool renamed to jvm.memory.pool.name
    • Garbage collection metrics

      • process.runtime.jvm.gc.duration renamed to jvm.gc.duration
      • Metric attributes:
        • name renamed to jvm.gc.name
        • action renamed to jvm.gc.action
    • Thread metrics

      • process.runtime.jvm.threads.count renamed to jvm.threads.count
      • Metric attributes:
        • daemon renamed to jvm.thread.daemon
    • Classes metrics

      • process.runtime.jvm.classes.loaded renamed to jvm.classes.loaded
      • process.runtime.jvm.classes.unloaded renamed to jvm.classes.unloaded
      • process.runtime.jvm.classes.current_loaded renamed to jvm.classes.count
    • CPU metrics

      • process.runtime.jvm.cpu.utilization renamed to jvm.cpu.recent_utilization
      • process.runtime.jvm.system.cpu.load_1m renamed to jvm.system.cpu.load_1m (still experimental)
      • process.runtime.jvm.system.cpu.utilization renamed to jvm.system.cpu.utilization (still experimental)
    • Buffer metrics

      • process.runtime.jvm.buffer.limit renamed to jvm.buffer.memory.limit (still experimental)
      • process.runtime.jvm.buffer.count renamed to jvm.buffer.count (still experimental)
      • process.runtime.jvm.buffer.usage renamed to jvm.buffer.memory.usage (still experimental)
      • Metric attributes:
        • pool renamed to jvm.buffer.pool.name

More migration notes

  • Lettuce CONNECT spans are now disabled by default. You can enable them using OTEL_INSTRUMENTATION_LETTUCE_CONNECTION_TELEMETRY_ENABLED=true or -Dotel.instrumentation.lettuce.connection-telemetry.enabled=true.
  • The configuration property otel.instrumentation.log4j-appender.experimental.capture-context-data-attributes has been renamed to otel.instrumentation.log4j-appender.experimental.capture-mdc-attributes.
  • MDC attribute prefixes (log4j.mdc. and logback.mdc.*) have been removed.
  • The artifact instrumentation-api-semconv has been renamed to instrumentation-api-incubator.
  • HTTP classes have been moved from instrumentation-api-incubator to instrumentation-api and as a result are now stable.

🌟 New javaagent instrumentation

  • Vert.x redis client (#9838)

📈 Enhancements

  • Reduce reactor stack trace depth (#9923)
  • Implement error.type in spring-webflux and reactor-netty instrumentations (#9967)
  • Bridge metric advice in OpenTelemetry API 1.32 (#10026)
  • Capture http.route for akka-http (#10039)
  • Rename telemetry.auto.version to telemetry.distro.version and add telemetry.distro.name (#9065)
  • Implement forEach support for aws sqs tracing list (#10062)
  • Add http client response attributes to aws sqs process spans (#10074)
  • Add support for OTEL_RESOURCE_ATTRIBUTES, OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_HEADERS, and OTEL_EXPORTER_OTLP_PROTOCOL for spring boot starter (#9950)
  • Add elasticsearch-api-client as instrumentation name to elasticsearch-api-client-7.16 (#10102)
  • Add instrumentation for druid connection pool (#9935)
  • Remove deprecated rocketmq setting (#10125)
  • JMX metrics for Tomcat with 'Tomcat' JMX domain (#10115)
  • Capture the SNS topic ARN under the 'messaging.destination.name' span attribute. (#10096)
  • Add network attributes to rabbitmq process spans (#10210)
  • Add UserExcludedClassloadersConfigurer (#10134)
  • Apply both server attributes & network attributes to Lettuce 5.1 (#10197)

🛠️ Bug fixes

  • Fix aws propagator presence check in spring boot starter (#9924)
  • Capture authority from apache httpclient request when HttpHost is null (#9990)
  • Fix NoSuchBeanDefinitionException with the JDBC driver configuration in spring boot starter (#9978)
  • Null check for nullable response object in aws sdk 1.1 instrumentation (#10029)
  • Fix using opentelemetry-spring-boot with Java 8 and Gradle (#10066)
  • Fix transforming Java record types (#10052)
  • Fix warnings from the spring boot starter (#10086)
  • Resolve ParameterNameDiscoverer Bean Conflict in spring-boot-autoconfigure (#10105)

🙇 Thank you

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

@AlchemyDing
@anhermon
@anuraaga
@bcarter97
@breedx-splk
@happyuser23
@heyams
@jack-berg
@jaydeluca
@jeanbisutti
@JonasKunz
@kenfinnigan
@knbk
@laurit
@mateuszrzeszutek
@moznion
@nilsga
@PaurushGarg
@PeterF778
@rBrda
@SHaaD94
@stevesea
@SylvainJuge
@tduncan
@theletterf
@trask
@TylerHelmuth
@vallabhnatu
@xiongchun
@zeitlinger