14 KiB
14 KiB
Changelog
Version 1.3.0 - 2021-06-17
🌟 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
-alljar (#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
🌟 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)
@WithSpanasync support added for methods returning async Reactor 3.x types (#2714)@WithSpanasync support added for methods returning Guava ListenableFuture (#2811)- Semantic attributes
code.namespaceandcode.functioncaptured on JAX-RS internal spans (#2805) - Context propagated to reactor-netty callbacks (#2850)
🌶️ Behavioral changes
- AWS lambda flush timeout raised to 10 seconds (#2855)
SERVERspan names improved for Spring MVC, Grails, Wicket, and Struts (#2814)SERVERspan names improved for Servlet filters (#2887)SERVERspan names improved for Resteasy (#2900)SERVERspan names improved for Jersey and CXF (#2919)- JAX-RS
@ApplicationPathannotation captured as part ofSERVERspan name (#2824) - RequestDispatcher
forward()andinclude()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: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-toolingmodule to implement custom instrumentations: a newjavaagent-extension-apimodule was introduced, containing all the necessary instrumentation classes and interfaces; InstrumentationModuleandTypeInstrumentationwere moved to theio.opentelemetry.javaagent.extension.instrumentationpackage;AgentElementMatchers,ClassLoaderMatcherandNameMatcherswere moved to theio.opentelemetry.javaagent.extension.matcherpackage;- A new SPI
AgentExtensionwas introduced: it replacesByteBuddyAgentCustomizer; InstrumentationModule#getOrder()was renamed toorder();InstrumentationModule#additionalHelperClassNames()has been removed; useisHelperClass(String)instead if you use the muzzle compile plugin. If you're not using muzzle, you can overridegetMuzzleHelperClassNames()directly instead;InstrumentationModule#getAllHelperClassNames()has been removed; you can callgetMuzzleHelperClassNames()to retrieve all helper class names instead.
- You no longer have to depend on the
Version 1.1.0 - 2021-04-14
☢️ Breaking changes
- Update servlet attribute names for log injection, from
traceIdandspanIdtotrace_idandspan_id(#2593) - Renamed
runtime.jvm.gc.collectionmetric toruntime.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)
@WithSpansupport for methods returning CompletableFuture (#2530)@WithSpansupport 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
@WithSpanmethods returning CompletableFuture (#2618) - Spring Boot Autoconfigure support for
@WithSpanmethods 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.countmetric (#2616) - Support reactor netty
HttpClient.fromconstruction (#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
@WithSpaninstrumentation 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)