github open-telemetry/opentelemetry-java-instrumentation v1.23.0
Version 1.23.0

latest releases: v2.9.0, v2.8.0, v1.33.6...
21 months ago

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.SpringWebTelemetryio.opentelemetry.instrumentation.spring.web.v3_1.SpringWebTelemetry
    • io.opentelemetry.instrumentation.spring.webflux.SpringWebfluxTelemetryio.opentelemetry.instrumentation.spring.webflux.v5_0.SpringWebfluxTelemetry
    • io.opentelemetry.instrumentation.spring.integration.SpringIntegrationTelemetryio.opentelemetry.instrumentation.spring.integration.v4_1.SpringIntegrationTelemetry
    • io.opentelemetry.instrumentation.logback.v1_0.OpenTelemetryAppenderio.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender
    • io.opentelemetry.instrumentation.apachedbcp.ApacheDbcpTelemetryio.opentelemetry.instrumentation.apachedbcp.v2_0.ApacheDbcpTelemetry
    • io.opentelemetry.instrumentation.c3p0.C3p0Telemetryio.opentelemetry.instrumentation.c3p0.v0_9.C3p0Telemetry
    • io.opentelemetry.instrumentation.graphql.GraphQLTelemetryio.opentelemetry.instrumentation.graphql.v12_0.GraphQLTelemetry
    • io.opentelemetry.instrumentation.guava.GuavaAsyncOperationEndStrategyio.opentelemetry.instrumentation.guava.v10_0.GuavaAsyncOperationEndStrategy
    • io.opentelemetry.instrumentation.hikaricp.HikariTelemetryio.opentelemetry.instrumentation.hikaricp.v3_0.HikariTelemetry
    • io.opentelemetry.instrumentation.kafkaclients.KafkaTelemetryio.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry
    • io.opentelemetry.instrumentation.oracleucp.OracleUcpTelemetryio.opentelemetry.instrumentation.oracleucp.v11_2.OracleUcpTelemetry
    • io.opentelemetry.instrumentation.ratpack.RatpackTelemetryio.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry
    • io.opentelemetry.instrumentation.reactor.ContextPropagationOperator io.opentelemetry.instrumentation.reactor.v3_1.ContextPropagationOperator
    • io.opentelemetry.instrumentation.viburdbcp.ViburTelemetryio.opentelemetry.instrumentation.viburdbcp.v11_0.ViburTelemetry
  • Several instrumentation scope names have been fixed (#7632)
    • io.opentelemetry.cxf-jaxrs-3.2io.opentelemetry.jaxrs-2.0-cxf-3.2
    • io.opentelemetry.jersey-2.0io.opentelemetry.jaxrs-2.0-jersey-2.0 or io.opentelemetry.jaxrs-3.0-jersey-3.0 as appropriate
    • io.opentelemetry.resteasy-3.0io.opentelemetry.jaxrs-2.0-resteasy-3.0
    • io.opentelemetry.resteasy-3.1io.opentelemetry.jaxrs-2.0-resteasy-3.1
    • io.opentelemetry.resteasy-6.0io.opentelemetry.jaxrs-3.0-resteasy-6.0
    • io.opentelemetry.jws-1.1io.opentelemetry.jaxws-jws-api-1.1
    • io.opentelemetry.vertx-kafka-client-3.5io.opentelemetry.vertx-kafka-client-3.6
    • io.opentelemetry.hibernate-4.3io.opentelemetry.hibernate-procedure-call-4.3
  • All methods in all *Getter classes in instrumentation-api-semconv have been renamed to use the get*() 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 the http.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 onto http.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

Don't miss a new opentelemetry-java-instrumentation release

NewReleases is sending notifications on new releases.