Skip to content

Latest commit

 

History

History
298 lines (242 loc) · 15.3 KB

CHANGELOG.md

File metadata and controls

298 lines (242 loc) · 15.3 KB

Changelog

Unreleased

Version 1.4.0 - 2021-07-20

☢️ 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)

📈 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 duplicate classes from final jars (#3432, #3430)
  • Port AsyncSpanEndStrategy to Instrumenter API (#3262)
  • Rename opentelemetry-javaagent-api artifact to opentelemetry-javaagent-instrumentation-api (#3513)

Version 1.3.1 - 2021-06-23

🛠️ Bug fixes

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

Version 1.3.0 - 2021-06-17

☢️ Behavioral changes

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

🌟 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)

🛠️ 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)

Version 1.2.0 - 2021-05-14

☢️ 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)

🌟 New javaagent instrumentation

🌟 New library instrumentation

📈 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)

🛠️ Bug fixes

  • gRPC context bridging issues (#2564, #2959)
  • URL credentials of the form https://username:password@www.example.com/ 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.

Version 1.1.0 - 2021-04-14

☢️ 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)

🌟 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)

📈 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)

🛠️ 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)