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.5.2

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

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

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


⚠️ 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)
opentelemetry-java-instrumentation - Version 1.5.0

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


⚠️ 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

opentelemetry-java-instrumentation - Version 1.4.1

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

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

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

This release requires the use of OpenTelemetry Java SDK 1.4.1.

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.

☢️ Behavioral changes

  • Updated all instrumentation names to io.opentelemetry.{libName}-{libVersion} (#3411)
  • Updated RabbitMQ to follow semantic conventions (#3425)

🌟 New javaagent instrumentation

  • Jetty 9 HTTP client instrumentation (#3079)

🌟 New library instrumentation

  • Jetty 9 HTTP client instrumentation (#3079)
  • Jdbc instrumentation (#3367)

📈 Enhancements

  • Make @RabbitListener propagate context properly (#3339)
  • Add peer.service to grpc javaagent instrumentation (#3357)
  • Propagate context to cassandra4 callbacks (#3371)
  • Update Armeria instrumentation to support new Armeria 1.9.0 release (#3407)
  • Context propagation for ratpack Execution.fork() (#3416)

🛠️ Bug fixes

  • Fix Kafka stream instrumentation to support Kafka 2.6 and above (#3438)
  • Fix Dubbo trace/span cross-process propagation (#3442)
  • Fix peer.service configuration mapping (#3378)

🧰 Tooling

  • Hide Config#create() method and use builder everywhere (#3338)
  • Ignore task classes using IgnoredTypesConfigurer (#3380)
  • Exclude bootstrap dependencies from inst (#3432)
  • Exclude duplicates from -all.jar (#3430)
  • Port AsyncSpanEndStrategy to Instrumenter API (#3262)
  • Rename opentelemetry-javaagent-api artifact to opentelemetry-javaagent-instrumentation-api (#3513)

🙇 Thank you

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

@agoallikmaa
@amitgud-doordash
@anuraaga
@Asafb26
@bnikster
@breedx-splk
@dengliming
@devinsba
@donbeave
@Enkelian
@EricGreen239
@GuillaumeWaignier
@HaloFour
@iNikem
@jamesylgan
@jkwatson
@Johnny850807
@judomu
@laurit
@liaozhenlin
@mateuszrzeszutek
@matthias-huber
@michaelbannister
@minwoox
@mnadeem
@necrolyte2
@Oberon00
@previousdeveloper
@RashmiRam
@rbelfils
@robododge
@tobias-
@trask
@trustin
@zmapleshine

opentelemetry-java-instrumentation - Version 1.3.1

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

This release requires the use of OpenTelemetry Java SDK 1.3.0. It is a patch release on the previous one fixing issues with the BOM, reactor-rabbitmq, and Spring JMS. If you do not use any of these, you do not need to update.

🛠️ Bug fixes

  • Fix incorrect dependency in published BOM (#3376)
  • Fix UnsupportedOperationException with reactor-rabbitmq (#3381)
  • Fix Spring JMS not being instrumented (#3359)
opentelemetry-java-instrumentation - Version 1.3.0

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

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

  • Spring Integration javaagent instrumentation (#3295)

🌟 New library instrumentation

  • Spring Integration library instrumentation (#3120)

📈 Enhancements

  • Support peer-service-mapping in OkHttp3 instrumentation (#3063)
  • Low cardinality span names for Hibernate spans (#3106)
  • Propagate context to armeria callbacks (#3108)
  • Add attributes to netty connection failure span (#3115)
  • Defer initialization of OpenTelemetry in spring-boot-autoconfigure (#3171)
  • Support couchbase 3.1.6 (#3194)
  • New experimental support for agent extensions (#2881, #3071, #3226, #3237)
  • Propagate context to akka http callbacks (#3263)

☢️ Behavioral changes

  • Update agent logger prefix (#3007)
  • Remove khttp instrumentation (#3087)
  • Enable akka actor instrumentation by default (#3173)

🛠️ Bug fixes

  • Remove Netty instrumented handler wrapper when original handler is removed (#3026)
  • Fix memory leak when Netty handler is a lambda (#3059)
  • Fix race condition on Undertow (#2992)
  • Remove db.connection_string from redis instrumentation (#3094)
  • Fix context propagation leak in Akka instrumentation (#3099)
  • Fix webflux handler span sporadically not ending (#3150)
  • End span on cancellation of subscription to reactive publishers (#3153)
  • End span on cancellation of Guava future (#3175)
  • Create Netty connection failure span only when first operation fails (#3228)
  • Internal instrumentation should always be enabled by default (#3257)
  • Fix context propagation leak in Akka HTTP instrumentation (#3264)
  • Only include exporters in the -all jar (#3286)
  • Fix ForkJoinPool sometimes not instrumented (#3293)

🧰 Tooling

  • Migrate MuzzlePlugin to Java (#2996, #3017)
  • Refactor TypeInstrumentation#transformers() method (#3019)
  • Change a couple of Longs to Integers in Instrumenter API (#3043)
  • Add peer.service to Instrumenter API (#3050)
  • Add response type parameter to db attributes extractor (#3093)
  • Add optimized Attributes implementation for Instrumenter (#3136)
  • Rename ComponentInstaller to AgentListener and add #order() method (#3182)
  • Update ByteBuddy (#3254)
  • Introduce IgnoredTypesConfigurer SPI to enable defining per-module ignores (#3219)
  • Extract agent shadow configuration to conventions script (#3256)
  • Deprecate SpanExporterFactory in favor of ConfigurableSpanExporterProvider (#3299)
  • Refactor span names class (#3281)
  • Move http client/server testing dependencies to internal package (#3305)

🙇 Thank you

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

@agoallikmaa
@anuraaga
@ben-manes
@breedx-splk
@dengliming
@HaloFour
@iNikem
@jkwatson
@kubawach
@laurit
@mateuszrzeszutek
@matthias-huber
@michaelbannister
@minwoox
@necrolyte2
@robododge
@tobias-
@trask
@tylerbenson
@WillsonHG

opentelemetry-java-instrumentation - Version 1.2.0

Published by trask over 3 years ago

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

  • RxJava 3 (#2794)

🌟 New library instrumentation

  • RxJava 3 (#2794)

📈 Enhancements

  • Support sub-millisecond precision for start/end times on Java 9+ (#2600)
  • @WithSpan async support added for methods returning async Reactor 3.x types (#2714)
  • @WithSpan async support added for methods returning Guava ListenableFuture (#2811)
  • Semantic attributes code.namespace and code.function captured on JAX-RS internal spans (#2805)
  • Context propagated to reactor-netty callbacks (#2850)

☢️ Behavioral changes

  • AWS lambda flush timeout raised to 10 seconds (#2855)
  • SERVER span names improved for Spring MVC, Grails, Wicket, and Struts (#2814)
  • SERVER span names improved for Servlet filters (#2887)
  • SERVER span names improved for Resteasy (#2900)
  • SERVER span names improved for Jersey and CXF (#2919)
  • JAX-RS @ApplicationPath annotation captured as part of SERVER span name (#2824)
  • RequestDispatcher forward() and include() internal spans removed (#2816)
  • Raised gRPC min version supported to 1.6 in order to use new gRPC context bridge API (#2948)

🛠️ Bug fixes

  • gRPC context bridging issues (#2564, #2959)
  • URL credentials of the form https://username:[email protected]/ no longer captured (#2707)
  • Spring MVC instrumentation can cause Spring MVC to misroute requests under some conditions (#2815)
  • RxJava2 NoSuchFieldError (#2836)
  • Duplicate http client tracing headers (#2842)
  • Netty 4.1 listeners could not be removed by application (#2851)
  • NPE caused in gRPC ProtoReflectionService (#2876)
  • Context leak when using Ratpack (#2910)
  • Context leak when using Jetty (#2920)
  • Servlet instrumentation overwrites setStatus that was set manually earlier (#2929)
  • Spans not captured on interface default methods annotated with JAX-RS annotations (#2930)

🧰 Tooling

  • Documented how to write InstrumentationModule line by line (#2793)
  • New instrumenter API used in JMS instrumentation (#2803)
  • Instrumenter API improvements (#2860)
  • Muzzle checks whether used fields are actually declared somewhere (#2870)
  • Extracted javaagent-extension-api from tooling & spi (#2879)
    • You no longer have to depend on the javaagent-tooling module to implement custom instrumentations: a new javaagent-extension-api module was introduced, containing all the necessary instrumentation classes and interfaces;
    • InstrumentationModule and TypeInstrumentation were moved to the io.opentelemetry.javaagent.extension.instrumentation package;
    • AgentElementMatchers, ClassLoaderMatcher and NameMatchers were moved to the io.opentelemetry.javaagent.extension.matcher package;
    • A new SPI AgentExtension was introduced: it replaces ByteBuddyAgentCustomizer;
    • InstrumentationModule#getOrder() was renamed to order();
    • InstrumentationModule#additionalHelperClassNames() has been removed; use isHelperClass(String) instead if you use the muzzle compile plugin. If you're not using muzzle, you can override getMuzzleHelperClassNames() directly instead;
    • InstrumentationModule#getAllHelperClassNames() has been removed; you can call getMuzzleHelperClassNames() to retrieve all helper class names instead.

🙇 Thank you

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

@agoallikmaa
@ankitgaur-cer
@anuraaga
@asarkar
@breedx-splk
@denis111
@dkulig
@fuleow
@HaloFour
@Hangzhi
@iNikem
@jguerra
@jkwatson
@kubawach
@laurit
@mateuszrzeszutek
@necrolyte2
@pavolloffay
@pellared
@raptium
@richardstartin
@RSoodAMAT
@ryanrupp
@skoppers
@trask
@tydhot
@tylerbenson

opentelemetry-java-instrumentation - Version 1.1.0

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

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

☢️ Behavioral changes

  • Update servlet attribute names for log injection, from traceId and spanId to trace_id and span_id (#2593)
  • Renamed runtime.jvm.gc.collection metric to runtime.jvm.gc.time (#2616)
  • Removed support for Play 2.3 (#2783)
  • Configuration properties names for our Spring Boot module were changed to match OpenTelemetry Java SDK properties (#2770)

🌟 New javaagent instrumentation

  • Elasticsearch 7 (#2514, #2528)
  • Couchbase 3.1 (#2524)
  • Grails (#2512)
  • RocketMQ (#2263)
  • Lettuce 6 (#2589)
  • Servlet 5 (#2609)
  • Vaadin web framework (#2619)
  • GWT (#2652)
  • Tapestry web framework (#2690)
  • @WithSpan support for methods returning CompletableFuture (#2530)
  • @WithSpan support for methods returning async RxJava 2 types (#2530)

🌟 New library instrumentation

  • Library instrumentation for AWS SDK v1 (#2525)
  • Library instrumentation for Lettuce 5.1 (#2533)
  • RocketMQ (#2263)
  • Lettuce 6 (#2589)
  • Spring Boot Autoconfigure support for @WithSpan methods returning CompletableFuture (#2618)
  • Spring Boot Autoconfigure support for @WithSpan methods returning async RxJava 2 types (#2530)
  • Mongo (#2789)

📈 Improvements

  • Move attributes to span builder for use by samplers (#2587)
  • Apache Camel - SNS propagation (#2562)
  • Apache Camel - S3 to SQS propagation (#2583)
  • Added runtime.jvm.gc.count metric (#2616)
  • Support reactor netty HttpClient.from construction (#2650)
  • Improve akka instrumentation (#2737)
  • Record internal metric for SQL cache misses (#2747)
  • End Netty 4.1 client and server spans when the response has completed, instead of when the response has started (#2641)
  • More stable context propagation for reactive Mongo client (#2758)

🛠️ Bug fixes

  • Fix RestTemplateInterceptor so that it calls endExceptionally() on exception (#2516)
  • Fix app failure under Eclipse OSGi (#2521)
  • Fix undertow span ending too early (#2560)
  • Fix context leak in AWS SDK 2.2 and RocketMQ instrumentations (#2637)
  • Fix hang when a webflux http request is made inside of another webflux http request (e.g. auth filter) (#2646)
  • Fix @WithSpan instrumentation breaking Java 6 classes (#2699)
  • Fix context not propagated over JMS when explicit destination used (#2702)
  • Fix StackOverflowError if jdbc driver implementation of Connection getMetaData calls Statement execute (#2756)

🧰 Tooling

  • Make muzzle reference creation package(s) configurable (#2615)
  • Instrumentations now can skip defining context store manually (#2775)
  • New Instrumenter API (#2596)

🙇 Thank you

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

@addname
@agoallikmaa
@amitgud-doordash
@anuraaga
@breedx-splk
@felixbarny
@HaloFour
@iNikem
@jack-berg
@jkwatson
@kubawach
@laurit
@mateuszrzeszutek
@piotr-sumo
@shantanu-vsbhosale
@trask
@tydhot

opentelemetry-java-instrumentation - Version 1.0.1

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

This release requires the use of OpenTelemetry Java SDK 1.0.0.

🛠️ Bug fixes

  • AWS SDK v2 can be applied without a JSON-based service on the classpath (e.g., only S3 is available) #2555
  • AWS resource detectors fixed to not NPE
opentelemetry-java-instrumentation - Version 1.0.0

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

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

  • OkHttp 3 library instrumentation #2489
  • AsyncHttpClient 2+ javaagent instrumentation #2348
  • JAX-WS frameworks javaagent instrumentation #2314
  • RxJava 2 javaagent instrumentation #2130

📈 Improvements

  • Low cardinality span names for servlet #2417
  • Low cardinality span names for Cassandra #2423
  • Low cardinality span names for Couchbase #2449
  • Document DB statement sanitization #2451
  • Update instrumentation names #2433
  • Enrich JDBC spans with db.operation and db.sql.table #2425
  • Add custom distro instrumentation unit test example #2373
  • Perf improvement by precompiling pattern and using char replacement #2374
  • Make http.flavor spec compliant #2370
  • DynamoDB attributes #2262
  • Make Netty span name spec compliant #2317

🛠️ Bug fixes

  • Only set aws header attribute name once #2509
  • Use correct value for operation in aws-sdk v1 #2488
  • Use dynamic resolution of SQS to allow working without it #2421
  • Fix for kubernetes-client instrumentation not working #2416
  • Fix for log4j instrumentation breaking user's logger in 2.13.2 #2407
  • Fix VerifyError in HttpUrlConnectionInstrumentation #2380
  • Fix high concurrency test on later versions of Vert.x #2378
  • Better context passing for Netty #2323, #2361

🧰 Tooling

  • LOTS of improvements to the instrumentation-api tracers #2401, #2418, #2424, #2452, #2453, #2468, #2482, #2478, #2492
  • Add a caching API based on caffeine for use from instrumentation #2477
  • Fix gradle caching was not re-running some tests that needed to be re-run #2504
  • SNS to SQS tracing propagation test #2483
  • Use ClassValue instead of WeakMap to cache span name #2491
  • Move some classes out of instrumentation-api #2466
  • Fix flaky tests #2448, #2450
  • Create a new SupportabilityMetrics class rather than using alpha Metrics #2353
  • Use fetch-depth=0 for all non-release builds for consistent versioning #2392
  • Enable disabled tests for HttpUrlConnection #2382
  • Add OpenJ9 image smoke test configurations #2377, #2386
  • Only run smoke tests if requested #2385
  • Remove trivial uses of Guava from agent #2360
  • Migrate Armeria to HttpServer/ClientTest #2345
  • Remove HttpServerTest.testExceptionBody and redirectHasBody #2346

☢️ Breaking changes

  • Expose only minimal entrypoint for Armeria library instrumentation #2463
  • Refactor gRPC library instrumentation to expose minimal API #2474, #2510
  • Migrate AWS SDK v2 to new library API pattern #2487
  • Hide non-spec'd span attributes behind experimental flags #2376, #2402, #2434
  • Rename some properties #2455, #2457, #2486

🙇 Thank you

Many thanks to all the people who have contributed over the past few years! We couldn't have done without everyone's help.

contributors

opentelemetry-java-instrumentation - Version 0.17.0

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

This update requires the use of OpenTelemetry Java SDK 0.17.0 or 0.17.1. There are many breaking changes in the API so if you manually trace using the API, you should carefully go through the release notes to see what needs to be updated.

If you use library instrumentation, you will want to take advantage of our shiny new BOM that we now publish to manage versions of io.opentelemetry.instrumentation and io.opentelemetry at io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:0.17.0-alpha. This means you do not want to use the SDK's BOM, io.opentelemetry:opentelemetry-bom - our BOM includes a compatible version so you don't have to worry about it.

Note that all artifacts other than io.opentelemetry.javaagent:javaagent have had the -alpha suffix attached to their version number to reflect the fact that we plan on releasing the javaagent as a stable artifact next month - all other artifacts will still be alpha quality and have continuing breaking changes.

🌟 New instrumentation

  • RxJava2 instrumentation (library only for now) #2191
  • Apache HTTPClient 5 #2254
  • Runtime metrics for JVM enabled by javaagent #2311

📈 Improvements

  • Some extraneous libraries have been removed from the agent package #2238 #2251 #2288
  • The agent does not register an extraneous shutdown hook which is now managed by the SDK #2283
  • Context is propagated to apache httpclient async callback #2276
  • When agent debug is enabled, spans are also logged to standard out #2270
  • Possibly minor startup performance improvement by avoiding String.format #2309
  • Metric collected for when we suppress nested spans #2135
  • MongoDB span names follow specification #2307
  • More jetty handlers are instrumented #2320

🛠️ Bug fixes

  • AWS Lambda instrumentation will now propagate from HTTP headers if X-Ray is disabled #2222
  • Apache Camel instrumentation will not throw an NPE in app code when SQS propagation is not enabled #2250
  • Prometheus collector's required HTTP dependency is restored #2259
  • gRPC client instrumentation does not squash exceptions thrown in client message handlers #2294
  • App server context name is correctly set for managed app servers #2089
  • HttpUrlConnection exceptions correctly set status code #2272

🧰 Tooling

  • Smoke tests are faster by only starting shared containers once #2249
  • A license report of all dependencies bundled into the agent is now also bundled in #2239 #2261 #2278
  • Tracers now return context instead of spans #2232
  • Downstream instrumentation tests can now be written in java with junit5 using our new extensions #2241
  • In general, the testing framework now makes less assumptions and should support wider use cases, for example ClassRule #2265
  • Library instrumentation can now use HttpServerTest and HttpClientTest abstractions #2299
  • Less chance (no chance?) of deadlock in builds due to logging race conditions #2236
  • JDK does not need to be in the PATH to run the build #2322

☢️ Breaking changes

  • Logging injection now sets fields trace_id, span_id, and trace_flags, instead of traceId, spanId, and sampled
  • AWS Lambda instrumentation now requires an OpenTelemetrySdk to be provided for initialization of non-wrappers. Wrappers use opentelemetry-sdk-extension-autoconfigure similar to the javaagent. #2328

🙇 Thank you

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

@agoallikmaa
@anuraaga
@breedx-splk
@iNikem
@jamal
@jkwatson
@kubawach
@laurit
@oberon00
@mateuszrzeszutek
@trask

opentelemetry-java-instrumentation - Version 0.16.1

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

This patch release contains a bug fix for a NPE in Apache Camel instrumentation - SQS context propagation (https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2250).

For more details about what has changed since 0.15.1 see the release notes for version 0.16.0.

opentelemetry-java-instrumentation - Version 0.16.0

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

This update is compatible with the OpenTelemetry Java SDK 0.16.0. There are many breaking changes in the API so if you manually trace using the API, you should carefully go through the release notes to see what needs to be updated.

🌟 New instrumentation

  • Apache Dubbo #2108
  • Apache CXF (JAX-RS) #2192
  • JAX-WS #2176
  • Reactor Netty 1.0 #2156
  • Apache Wicket #2139

📈 Improvements

  • Additional Cassandra span attributes captured #1314
  • Apache Camel SQS propagation #2102
  • Tracers support injection of OpenTelemetry instances #2233, #2197
  • Context is used more consistently in Tracer classes #2194
  • Major documentation re-org, no longer massive wall of text(!) #2226

🛠️ Bug fixes

  • Broken traces from Netty Reactor instrumentation #2156, #2229 🤞

🧰 Tooling

  • More muzzle doc #2158
  • Static imports (style guidelines) doc #2161
  • Clean up of spock test runners #2134, #2223, #2205, #2196
  • Tracer hierarchy clean up #2159
  • Improved test stability #2169, #2170, #2181, #2202, #2154
  • Test latest hibernate versions #2182
  • New tests exercising http client concurrency #2156
  • Automation of draft release in GHA workflow #2237
  • Add tests for tomee application server #2175

☢️ Breaking changes

  • Some configuration properties have been updated to the latest specification
    • OTEL_TRACE_EXPORTER/otel.trace.exporter has been replaced with OTEL_TRACES_EXPORTER/otel.traces.exporter
    • OTEL_TRACE_SAMPLER/otel.trace.sampler has been replaced with OTEL_TRACES_SAMPLER/otel.traces.sampler
    • OTEL_TRACE_SAMPLER_ARG/otel.trace.sampler.arg has been replaced with OTEL_TRACES_SAMPLER_ARG/otel.traces.sampler.arg

🙇 Thank you

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

@anuraaga
@breedx-splk
@brianashby-sfx
@evantorrie
@FrankSpitulski
@gliptak
@iNikem
@jkwatson
@kubawach
@laurit
@markfink-splunk
@mateuszrzeszutek
@trask
@tydhot
@vovencij

opentelemetry-java-instrumentation - Version 0.15.1

Published by mateuszrzeszutek over 3 years ago

This patch release contains a bug fix fox SQS propagation in apache-camel instrumentation (#2102).

For more details about what has changed since 0.14.0 see release notes for version 0.15.0.

opentelemetry-java-instrumentation - Version 0.15.0

Published by anuraaga over 3 years ago

This update is compatible with the OpenTelemetry Java SDK 0.15.0. Most breaking changes are in the SDK so if you are using library instrumentation and the SDK directly, you may need to update code for initializing the SDK.

🌟 New instrumentation

  • JSF actions #2018
  • MongoDB 4 #2046
  • Spring batch: items #2047
  • Spring Web Services #2111
  • Mojarra / Myfaces #2119

📈 Improvements

  • Fix instrumentation of Jersey 2.30 #2071
  • The agent now uses the SDK autoconfiguration module for environment variables #2077
  • Servlet tracer names now reflect the version of the instrumentation library, e.g. servlet-2.0, servlet-3.0 #1979
  • JMS does not create spans when no messages are received #2091
  • SQL sanitization performance improved and now results are cached #2113 #2094
  • AWS SDK v1 instrumentation will now always use AWS trace propagator without configuring it globally #2117
  • AWS SDK v1 propagates SQS trace context #2114

🛠️ Bug fixes

  • The agent will work correctly with the latest version of Netty #2070
  • The agent will work correctly with the latest version of Apache Camel #2084
  • The agent will work correctly with the latest version of Spring Webflux #2100

🧰 Tooling

  • Tests for verifying behavior with Apache Camel and AWS SQS #2061
  • Netty instrumentation only attempts to be applied now if the classpath contains 4.0, or 4.1 respectively #2099
  • The default branch has been renamed to main #2118
  • Agent testing libraries are published for use in custom distributions #2133

☢️ Breaking changes

  • Jaeger thrift exporter has been removed from the default agent distribution. Splunk distribution still includes it. #2073
  • Instrumentation-specific flags for enabling SQL sanitization have been consolidated into one otel.instrumentation.db-statement-sanitizer.enabled
  • Many configuration properties have been updated to the latest specification
    • otel.exporter -> otel.trace.exporter / otel.metrics.exporter. The new variables only accept a single value
    • otel.exporter.otlp.endpoint now requires a scheme of http:// or https://. otel.exporter.otlp.insecure has been removed
    • otel.bsp.max.queue -> otel.bsp.max.queue.size
    • otel.bsp.max.export.batch -> otel.bsp.max.export.batch.size
    • otel.bsp.export.sampled has been removed. Only sampled spans are exported
    • otel.config.sampler.probability -> otel.trace.sampler=parentbased_traceidratio and otel.trace.sampler.arg=<probability>
    • otel.config.max.attrs -> otel.span.attribute.count.limit
    • otel.config.max.events -> otel.span.event.count.limit
    • otel.config.max.links -> otel.span.link.count.limit

🙇 Thank you

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

@anuraaga
@ben-childs-docusign
@breedx-splk
@iNikem
@jkwatson
@kubawach
@laurit
@malafeev
@mateuszrzeszutek
@pavolloffay
@trask
@vovencij

opentelemetry-java-instrumentation - Version 0.14.0

Published by anuraaga almost 4 years ago

This update is compatible with the OpenTelemetry Java SDK 0.14.1. Most breaking changes are in the SDK so if you are using library instrumentation and the SDK directly, you may need to update code for initializing the SDK.

🌟 New instrumentation

  • Spring batch chunks #1850
  • Spring batch partitioning #2034
  • App-server specific runtimes
    • Undertow #1917
    • Liberty #1929
    • Jetty #2029

📈 Improvements

  • Grizzy spans have exceptions added #1987
  • AWS Lambda flush timeout can be configured #1960
  • Context propagation for apache camel instrumentation #2042
  • Netty instrumentation adds exceptions #2027
  • Logging exporter outputs one span per line instead of combining a batch #2054
  • Lambda SQS users do not need to configure xray as their app propagators anymore #2056
  • Armeria instrumentation updated to target 1.3.0 which had breaking changes

🛠️ Bug fixes

  • External exporter JAR file is closed correctly during initialization #1970
  • Correctly propagate context in Jetty #1966
  • Correctly handle servlet2 response with unset status #1985
  • Agent logs its version at startup again #2026

🧰 Tooling

  • End-to-end benchmark for latency when using the agent #1935
  • Tests are now run with an actual javaagent instead of post-startup bytebuddy reinstantiation #1643
  • Automatic code security scanning enabled #1971
  • Jackson version updated #2040

☢️ Breaking changes

  • Armeria instrumentation does not support Armeria versions before 1.3.0

🙇 Thank you

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

@amanbrar1999
@anuraaga
@avpatel257
@bhautikpip
@breedx-splk
@iNikem
@jkwatson
@kubawach
@laurit
@malafeev
@mateuszrzeszutek
@pavolloffay
@tobias-
@trask
@vovencij

opentelemetry-java-instrumentation - Version 0.13.0

Published by anuraaga almost 4 years ago

This update is compatible with the OpenTelemetry Java SDK 0.13.1. Most breaking changes are in the SDK so if you are using library instrumentation and the SDK directly, you may need to update code for initializing the SDK.

🌟 New instrumentation

  • Context propagation for Spring SimpleAsyncTaskExecutor #1897
  • Spring batch jobs #1843
  • Tomcat server handlers for more precise instrumentation vs generic servlet #1902
  • OpenTelemetry baggage is now bridged and can be used in apps #1927

📈 Improvements

  • Jaeger Thrift exporter included in agent with the configuration value name jaeger-thrift #1868

🛠️ Bug fixes

  • AWS SDK Instrumentation helper injection works again #1876

🧰 Tooling

  • Fix smoke tests for liberty app container #1853
  • SPI resources injected by instrumentation now detected by muzzle #1918
  • Muzzle warnings correctly logged in tests #1930

☢️ Breaking changes

  • Attributes that are not part of the opentelemetry specification have been hidden behind opt-in flags. If there are any attributes that you think would be great for anyone, please file an issue on the spec repo for adding them natively.

Flag guards are per instrumentation

  • Hytrix: otel.instrumentation.hystrix.experimental-span-attributes
  • Kafka: otel.instrumentation.kafka.experimental-span-attributes
  • Spring Webflux: otel.instrumentation.spring-webflux.experimental-span-attributes
  • Spring WebMVC: otel.instrumentation.spring-webmvc.experimental-span-attributes

🙇 Thank you

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

@anuraaga
@breedx-splk
@iNikem
@laurit
@mateuszrzeszutek
@pavolloffay
@trask
@vovencij

opentelemetry-java-instrumentation - Version 0.12.0

Published by anuraaga almost 4 years ago

This update is compatible with the OpenTelemetry Java SDK 0.12.0. Most breaking changes in its API are API-compatible if you recompile your app.

NB: The snapshots repository has been moved to Sonatype OSS (https://oss.sonatype.org/content/repositories/snapshots/)

🌟 New instrumentation

  • gRPC instrumentation has been updated to support the latest version #1839

📈 Improvements

  • Context is propagated even when there is no span in more locations #1802 #1810 #1811
  • WithSpan will not produce nested server or client spans anymore #1801
  • Standard Resource extensions for process and runtime are enabled automatically #1809
  • HTTP attributes are populated for AWS Lambda spans #1780
  • Additional FaaS spans are populated for AWS Lambda #1831

🛠️ Bug fixes

  • AWS SDK suppresses client spans, preventing authentication signature break #1837

🧰 Tooling

  • A new matrix of tests of various app servers has been added #1821
  • We now publish the instrumentation artifacts to Maven Central #1823

☢️ Breaking changes

  • servlet.context span attribute is not set anymore #1783

  • Some configuration properties have been renamed #1786

otel.instrumentation.executors.includeAll --> otel.instrumentation.executors.include-all
otel.hystrix.tags.enabled --> otel.instrumentation.hystrix.tags
otel.kafka.client.propagation.enabled --> otel.instrumentation.kafka.client-propagation
otel.instrumentation.defaultEnabled --> otel.instrumentation.default-enabled
  • Several custom attributes have been renamed to be prefixed by instrumentation name. If any of these seem interesting to formalize, let us know or go ahead and file a specification issue! #1784

Instrumentation affected: apache-camel, couchbase, grpc, jaxrs, kafka-clients, lettuce, rabbitmq, spring

  • Exporter packages use exporter instead of exporters in artifact name, e.g., opentelemetry-javaagent-exporter-zipkin

🙇 Thank you

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

@anuraaga
@iNikem
@mateuszrzeszutek
@trask
@vovencij

opentelemetry-java-instrumentation - Version 0.11.0

Published by anuraaga almost 4 years ago

This update is compatible with the OpenTelemetry Java SDK 0.11.0.

NB! That release contains A LOT OF breaking changes related to builders, please read its change log carefully!

🌟 New instrumentation

  • AWS Lambda Instrumentation of HTTP requests (e.g., API Gateway) #1650 #1536
  • http4k (hosted out of tree but please give it a try!) #1605
  • reactor-netty context propagation #1601
  • Struts 2 #1628
  • Runtime metrics (JVM metrics) moved from SDK repository #1720
  • RXJava (previously existed only in agent, now published as library) #1732

📈 Improvements

  • Anyone interested in the challenges of working with classloaders in Java agents can check out our design doc
  • JDBC span names now include the statement name, DB name, and DB table #1533
  • Many new SPIs to better configure the agent in restributions #1613
  • Servlet Filter instrumented directly instead of FilterChain #1606
  • Mongo command scrubber improvements #1663 #1662
  • System metrics instrumentation updated to follow new specification #1705
  • Baggage propagator enabled by default #1545
  • Anyone creating a custom distribution of the agent should check out the example #1621

🛠️ Bug fixes

  • Muzzle configuration issue effecting Wildfly and JDBC instrumentation #1585 #1593
  • B3 multi propagation format can be configured with b3multi flag #1647
  • AWS SDK v2 instrumentation now applied to all clients, not just ones after the first one #1759
  • Context is propagated to requests from AWS SDK v2 / v1 #1763 #1771
  • Kotlin auto instrumentation updated to use context element, should have less issues (please file any issues if you run into them!) #1618

🧰 Tooling

  • Significant refactoring to instrumentation module setup introducing the InstrumentationModule interface #1528
  • Byte buddy version bumped to 1.10.18 (should fix issues with Weblogic Server) #1596
  • Gradle toolchains feature implemented to allow running tests on different JVMs without having to install them yourself #1627
  • We now use checkstyle to check for some code conventions (not formatting) of the Google style guide #1641
  • Muzzle now automatically generates injected helpers instead of being maintained manually #1714

☢️ Breaking changes

  • Several configuration options have been renamed
otel.trace.enabled --> otel.javaagent.enabled
otel.trace.debug --> otel.javaagent.debug
otel.trace.config --> otel.javaagent.config
otel.trace.runtime.context.field.injection --> otel.javaagent.runtime.context.field.injection
otel.instrumentations.enabled --> otel.instrumentations.default-enabled
otel.trace.classes.excludes --> otel.javaagent.exclude-classes

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

@agoallikmaa
@anuraaga
@daviddenton
@hasanfd
@holyjak
@iNikem
@jkwatson
@jamal
@jamesylgan
@jyemin
@kubawach
@malafeev
@mateuszrzeszutek
@mrcull
@pavolloffay
@snyder114
@TeeVenDick
@trask
@vovencij