opentelemetry-java-instrumentation

OpenTelemetry auto-instrumentation and instrumentation libraries for Java

APACHE-2.0 License

Stars
1.9K

Bot releases are visible (Hide)

opentelemetry-java-instrumentation - Version 1.28.0

Published by github-actions[bot] over 1 year ago

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

  • Rename HTTP configuration settings (#8758) - otel.instrumentation.http.capture-headers.client.requestotel.instrumentation.http.client.capture-request-headers - otel.instrumentation.http.capture-headers.client.responseotel.instrumentation.http.client.capture-response-headers - otel.instrumentation.http.capture-headers.server.requestotel.instrumentation.http.server.capture-request-headers - otel.instrumentation.http.capture-headers.server.responseotel.instrumentation.http.server.capture-response-headers

📈 Enhancements

  • Support latest armeria release (#8745)
  • Support latest mongo release (#8785)
  • Remove server.{address,port} from HTTP server metrics (#8771)
  • aws-sdk-2.2.: Support injection into SQS.SendMessageBatch message attributes (#8798)
  • Log4j and Logback appenders opt-in to using GlobalOpenTelemetry (#8791)
  • aws-sdk-2.2: SNS.Publish support with experimental messaging propagator flag (#8830)
  • support for adding baggage to log4j 2 ContextData (#8810)
  • Micrometer bridge: interpret no SLO config as no buckets advice (#8856)
  • Instrumentation for Elasticsearch 8+ (#8799)
  • Add support for schemaUrls auto-computed from AttributesExtrators (#8864)
  • Initialize appenders in the spring boot starter (#8888)
  • Support reactor-netty 1.0.34+ (#8922)
  • Rename messaging operation "send" to "publish" per spec (#8929)
  • Extract query arguments without regex on lettuce 6 (#8932)

🛠️ Bug fixes

  • Fix logging timestamp (#8761)
  • Minor fixes to the server.* attributes extrator (#8772)
  • Fix context leak on call to AmazonS3.generatePresignedUrl (#8815)
  • Fix exception when pulsar has multiple service addresses (#8816)
  • Fix NPE in aws instrumentation on duplicate TracingExecutionInterceptor (#8896)
  • (micrometer) don't add . to empty unit with prometheus naming conventions (#8872)
  • Set server span name for aborted requests in quarkus resteasy native (#8891)
  • Fix instrumentation of Azure SDK EventHubs library (#8916)
  • Fix http attributes of AWS SDK V2 instrumentation (#8931)

🙇 Thank you

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

@abhisesh
@AlexanderWert
@bcoquell
@breedx-splk
@frombrest
@huange7
@jack-berg
@jaydeluca
@jeanbisutti
@josecoelho96
@jprinet
@laurit
@lmolkova
@lu-xiaoshuang
@mateuszrzeszutek
@Oberon00
@quinoant
@rapphil
@scprek
@swar8080
@SylvainJuge
@theletterf
@trask
@tylerbenson
@XiaoWeiKIN
@zeitlinger

opentelemetry-java-instrumentation - Version 1.27.0

Published by github-actions[bot] over 1 year ago

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

  • Jersey 3.0 instrumentation suppression keys have changed from jaxrs-2.0 to jaxrs-3.0, and from jersey-2.0 to jersey-3.0 (#8486)
  • The opentelemetry-runtime-metrics artifact has been renamed and split into opentelemetry-runtime-telemetry-java8 and opentelemetry-runtime-telemetry-java17 (#8165, #8715)
  • InetSocketAddressNetServerAttributesGetter and InetSocketAddressNetClientAttributesGetter have been deprecated (#8341, #8591)
  • The new HTTP and network semantic conventions can be opted into using either the system property otel.semconv-stability.opt-in or the environment variable OTEL_SEMCONV_STABILITY_OPT_IN, which support two values:
    • http - emit the new, stable HTTP and networking attributes, and stop emitting the old experimental HTTP and networking attributes that the instrumentation emitted previously.
    • http/dup - emit both the old and the stable HTTP and networking attributes, allowing for a more seamless transition.
    • The default behavior (in the absence of one of these values) is to continue emitting the same HTTP and network semantic conventions that were emitted in 1.26.0.
    • Note: this option will be removed later this year after the new HTTP and network semantic conventions are marked stable, at which time the Java instrumentation version will be bumped from 1.x to 2.0, and the old HTTP and network semantic conventions will no longer be supported.

🌟 New javaagent instrumentation

📈 Enhancements

  • Use histogram advice in the Micrometer bridge (#8334)
  • Disable by default gauge-based histograms in the Micrometer bridge (#8360)
  • Specify ...jvm.gc.duration buckets using advice API (#8436)
  • Make spanKindExtractor configurable in Ktor instrumentations (#8255)
  • aws-sdk-2.2: Support non-X-Ray propagation for SQS (#8405)
  • Implement HTTP resend spec for OkHttp 3 (#7652)
  • Use jakarta.servlet.error.exception request attribute on jetty11 (#8503)
  • Provide spring-boot-autoconfigure configuration metadata (#8516)
  • Read AWS lambda tracing info from com.amazonaws.xray.traceHeader system property (#8368)
  • Skip not decorator check for classes in boot loader (#8594)
  • Change context propagation debug failures from error to warn (#8601)
  • JavaScript Snippet Injection Support Servlet 5 (#8569)
  • Faster type matching (#8525)
  • Explicitly disable the logging exporter by default to override the upcoming SDK autoconfigure module change in 1.27.0 and preserve existing behavior (#8647)
  • Support otel.sdk.disabled in the spring boot starter (#8602)
  • Add OTLP log exporter to the OpenTelemetry Spring Starter (#8493)
  • Suppress Spring Actuator instrumentation when micrometer instrumentation is suppressed (#8677)
  • Replace "1" with the appropriate units and don't fall back to "1" if the unit is unknown (#8668)
  • Added setOpenTelemetry method to log4j appender (#8231)

🛠️ Bug fixes

  • Fix using logback mdc instrumentation along with SocketAppender (#8498)
  • Fix failure when kafka metrics reporter is set to an empty string (#8523)
  • Remove extra space from kubernetes client span name (#8540)
  • Fix jetty context leak (#8552)
  • Filter out scalar Mono/Flux instances (#8571)
  • End netty client span when channel is closed (#8605)
  • Unregistering jmx gc metrics on close (#8650)
  • Fix snippet injection ClassCastException (#8701)
  • Only instrument the actual Spring TaskScheduler implementations (#8676)

🙇 Thank you

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

@62mkv
@bcoquell
@breedx-splk
@brunobat
@edzebo
@gavlyukovskiy
@huange7
@insotriplesix
@irizzant
@jack-berg
@jdoherty
@jeanbisutti
@kes2464
@kurvatch
@laurit
@mateuszrzeszutek
@michaeljohnalbers
@Oberon00
@orangain
@qiansheng91
@roberttoyonaga
@rotscher
@rupinder10
@sakthiraam
@siyuniu-ms
@smirnoal
@theletterf
@trask
@tylerbenson
@ViliusS
@will-zdu
@zeitlinger
@zoobert

opentelemetry-java-instrumentation - Version 1.26.0

Published by github-actions[bot] over 1 year ago

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

  • java.util.concurrent executors instrumentation suppression key has changed from executor to executors (#8451)

🌟 New javaagent instrumentation

  • Add instrumentation for vertx-sql-client (#8311)

🌟 New library instrumentation

📈 Enhancements

  • Make net.transport an optional attribute (#8279)
  • Introduce @AddingSpanAttributes annotation (#7787)
  • JavaScript snippet injection (#7650)
  • Map peer.service also from net.sock.peer.name (#7888)
  • Set up EarlyInitAgentConfig even earlier (#8413)

🛠️ Bug fixes

  • Fix nested http.route (#8282)
  • Fix undertow instrumentation with http pipelining (#8400)
  • Fix http pipelining on Grizzly (#8411)
  • Fix http pipelining on Netty 4.1 server (#8412)
  • Allow transforming classes with missing field types (#8393)
  • Fix reactor flux retry context leak (#8456)

🧰 Tooling

  • Introduce new incubating InstrumenterBuilder methods (#8392)

🙇 Thank you

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

@apanasevich
@breedx-splk
@BroadWFarmer
@brunobat
@dmarkwat
@edison-moreno
@ericsyh
@fmhwong
@hannahchan
@heyams
@kaibocai7
@laurit
@lmolkova
@mateuszrzeszutek
@niteshs7
@PeterF778
@rahuldimri
@sfriberg
@shuwpan
@siyuniu-ms
@stevesea
@theletterf
@trask
@tylerbenson
@xiangtianyu
@yzhuang93

opentelemetry-java-instrumentation - Version 1.25.1

Published by github-actions[bot] over 1 year ago

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

  • Fix apache pulsar instrumentation missing from the Java agent (#8378)
opentelemetry-java-instrumentation - Version 1.25.0

Published by github-actions[bot] over 1 year ago

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

  • Apache Pulsar instrumentation name is changed from io.opentelemetry.apache-pulsar-2.8 to io.opentelemetry.pulsar-2.8 and Apache Camel instrumentation name is changed from io.opentelemetry.apache-camel-2.20 to io.opentelemetry.camel-2.20 (#8195)
  • Mojarra instrumentation suppression key has changed from mojarra to jsf-mojarra and MyFaces instrumentation suppression key has changed from myfaces to jsf-myfaces (#7811)

🌟 New javaagent instrumentation

  • R2DBC (#7977)
  • Add JFR streaming metrics gatherer (#7886)
  • ZIO 2.0 instrumentation (#7980)

🌟 New library instrumentation

  • R2DBC (#7977)
  • Add JFR streaming metrics gatherer (#7886)
  • Add library instrumentation for java http client (#8138)

📈 Enhancements

  • Move X-Ray Env Variable propagation to span link instead of parent (#7970)
  • Reduce memory usage for ClassLoaderHasClassesNamedMatcher (#7866)
  • Remove password from db.user parsed from JDBC url (#8106)
  • Ignore appd agent classes (#8065)
  • Add http client metrics to apache http library instrumentation (#8128)
  • Instrument additional pulsar receive methods (#8171)
  • Support latest Hibernate 6 version (#8189)
  • Support spring boot service name detector when spring boot application is packaged in one jar (#8101)
  • Support parsing Spring boot service name when more than one yaml is defined (#8006)
  • Add option to capture logback key value pairs (#8074)
  • Bridge agent logs into application's slf4j logger (#7339, #8228)
  • Better container ID parsing (#8206)
  • Pulsar batch receive instrumentation (#8173)
  • Improve compatibility with SecurityManager (#7983)
  • Instrument akka-http bindAndHandle (#8174)
  • Spring scheduling: run error handler with the same context as task (#8220)
  • Switch from http.flavor to net.protocol.* (#8131, #8244)
  • Support latest Armeria release (#8247)
  • Populate process.command_args for Java 9+ and improve process.command_line for Java 8 (#8130)

🛠️ Bug fixes

  • Fix TracingCqlSession ClassCastException (#8041)
  • Kafka: avoid registering duplicate metrics reporter (#8099)
  • Prefix baggage key not value when adding it to logback mdc (#8066)
  • Fix error when using shardingsphere (#8110)
  • Fix order of cxf handlers to enable symmetric tracing around jaxws handler chain (#8160)
  • Fix javaagent armeria server instrumentation (#8281)

🧰 Tooling

🙇 Thank you

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

@abhisesh
@adamleantech
@agoallikmaa
@amseager
@anuraaga
@arminru
@aschugunov
@bcoquell
@blumamir
@breedx-splk
@CleverChuk
@coderzc
@dmytr
@duartesaraiva98
@huange7
@jack-berg
@jeanbisutti
@jkwatson
@juandaco
@laurit
@lmolkova
@makssobolevs
@marcingrzejszczak
@mateuszrzeszutek
@maverick-devil
@niteshs7
@pellmont
@PhilKes
@roberttoyonaga
@robododge
@ryandens
@sirianni
@transfercai
@trask
@trudyq
@tsloughter
@tylerbenson
@Volodymyr-Maiboroda-Imprivata
@wzy531a
@zackman0010

opentelemetry-java-instrumentation - Version 1.24.0

Published by github-actions[bot] over 1 year ago

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

🌟 New javaagent instrumentation

🌟 New library instrumentation

  • Add Ktor client instrumentation (#7982, #7997)
  • Add Spring Webflux server instrumentation (#7899)

📈 Enhancements

  • Implement messaging.kafka.* attributes spec (#7824, #7860)
  • Make RxJava2 instrumentation Android-friendly (#7895)
  • Support more semantic convention for RocketMQ trace (#7871)
  • Instrumenting cassandra executeReactive method (#6441)
  • Make the OpenTelemetry Logback appender work with GraalVM native images (#7989)
  • Add baggage to Logback MDC; controlled by a configuration flag (#7892)
  • Make the Spring Boot autoconfigure module work with Spring Boot 3 (#8028, #8051)

🛠️ Bug fixes

  • Handle JMX MBean attributes with embedded dots (#7841)
  • Fix ClassCastException when using -Dotel.jmx.target.system=tomcat (#7884)
  • Fix NPE in the AWS SDK 2 instrumentation when request instrumentation is suppressed (#7953)
  • Fix Kotlin coroutine context propagation (#7879)
  • Fix the JAX-RS annotation instrumentation on Open Liberty (#7890)
  • Fix an AbstractMethodError in the Logback instrumentation (#7967)
  • Fix NPE in the RabbitMQ instrumentation (#8021)
  • Fix JMX metrics usage examples (#7877)

🧰 Tooling

  • Remove deprecated instrumentation-api-semconv code (#7838)
  • Look up helper class bytes when they are needed (#7839)
  • Run smoke tests using Open Liberty 21.0.0.12 and 22.0.0.12 (#7878, #7857)
  • Add additional groovy script classloaders to ignore list. (#7460)
  • Make AggregationTemporality configurable for OtlpInMemoryMetricExporter in the agent-for-testing module (#7904)
  • Upgrade to gradle 8.0.2 (#7910, 7978)
  • Replace the test-sets plugin with Gradle test suites (#7930, #7933, #7932, #7931, #7929, #7946, #7945, #7944, #7943, #7942, #7928, #7951)
  • Add a utility for tracking HTTP resends (#7986)
  • Remove deprecated messaging.url attribute from messaging getter (#8008)
  • Add protocol name&version to net attribute getters (#7994)
  • Test http client captured headers (#7993)
  • Improve compatibility with other agents (#7916)
  • Share timer class used by messaging instrumentations (#8009)
  • Convert groovy tests to java (#7976, #7975, #7912)
  • Check that extracting extension jar doesn't escape designated directory (#7908)
  • Assert user agent when it is present in HTTP client tests (#7918)
  • Update the OpenTelemetry SDK version to 1.24.0 (#8027)
  • Provide ability to add HTTP server response headers, with Tomcat implementation (#7990)

🙇 Thank you

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

@aaron-ai
@adamleantech
@agoallikmaa
@amexboy
@anuragagarwal561994
@arik-dig
@asarkar
@awelless
@bherbst
@breedx-splk
@devkanro
@fmhwong
@hansh0801
@heyams
@hubxx
@jack-berg
@jamesmoessis
@jeanbisutti
@KevinLiLu
@laurit
@lennartfricke
@mateuszrzeszutek
@mellis3000
@neroux
@oswin886
@PeterF778
@PhilKes
@ptrdom
@raamcosta
@riferrei
@SimoneGiusso
@tjiuming
@trask
@tylerbenson
@yonigibbs
@zeitlinger

opentelemetry-java-instrumentation - Version 1.23.0

Published by github-actions[bot] over 1 year 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

opentelemetry-java-instrumentation - Version 1.22.1

Published by github-actions[bot] almost 2 years ago

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

  • Fix potential startup failure (#7567)
opentelemetry-java-instrumentation - Version 1.22.0

Published by github-actions[bot] almost 2 years ago

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

opentelemetry-java-instrumentation - Version 1.21.0

Published by github-actions[bot] almost 2 years ago

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

opentelemetry-java-instrumentation - Version 1.20.2

Published by github-actions[bot] almost 2 years ago

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

🛠️ Bug fixes

opentelemetry-java-instrumentation - Version 1.20.1

Published by github-actions[bot] almost 2 years ago

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)
opentelemetry-java-instrumentation - Version 1.20.0

Published by github-actions[bot] almost 2 years ago

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

opentelemetry-java-instrumentation - Version 1.19.2

Published by github-actions[bot] almost 2 years ago

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)
opentelemetry-java-instrumentation - Version 1.19.1

Published by github-actions[bot] almost 2 years ago

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)
opentelemetry-java-instrumentation - Version 1.19.0

Published by github-actions[bot] about 2 years ago

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

opentelemetry-java-instrumentation - Version 1.18.0

Published by github-actions[bot] about 2 years ago

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

opentelemetry-java-instrumentation - Version 1.17.0

Published by github-actions[bot] about 2 years ago

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

opentelemetry-java-instrumentation - Version 1.16.0

Published by github-actions[bot] over 2 years ago

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

opentelemetry-java-instrumentation - Version 1.15.0

Published by trask over 2 years ago

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