opentelemetry-java-instrume.../CHANGELOG.md

592 lines
33 KiB
Markdown

# Changelog
## Version 1.6.2 - 2021-09-30
### 🛠️ Bug fixes
- The 1.6.1 patch release was not backwards compatible with javaagent extensions built against 1.6.0
([#4245](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4245))
## Version 1.6.1 - 2021-09-29
### 🛠️ Bug fixes
- Fix possible JDBC instrumentation deadlock
([#4191](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4191))
## Version 1.6.0 - 2021-09-18
### 🌟 New javaagent instrumentation
- Add instrumentation for Quartz 2.0
([#4017](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4017))
- Restlet instrumentation
([#3946](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3946))
### 🌟 New library instrumentation
- Add instrumentation for Quartz 2.0
([#4017](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4017))
- Restlet instrumentation
([#3946](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3946))
### 📈 Enhancements
- Extract Jedis 3 net attributes from InetSocketAddress
([#3912](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3912))
- Add option to suppress controller and view spans
([#3865](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3865))
- Capture http.user_agent for AsyncHttpClient
([#3930](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3930))
- Instrument spring-kafka batch message listeners
([#3922](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3922))
- Use unsafe to inject classes to the bootstrap class loader
([#4026](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4026))
- Some performance optimizations
([#4004](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4004),
[#4006](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4006),
[#4008](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4008),
[#4013](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4013),
[#4014](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4014))
- Do not fallback to net attributes for http.client_ip
([#4063](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4063))
- Start a CONSUMER span for Kafka poll()
([#4041](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4041))
- Support otlp http exporter
([#4068](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4068))
- Better grpc events
([#4098](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4098))
### 🛠️ Bug fixes
- Bridge span keys defined in instrumentation-api
([#3911](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3911))
- Hide generated fields and methods from reflection
([#3948](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3948))
- Remove invalid message header
([#3958](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3958))
- Fix memleak in the Netty ChannelPipeline instrumentation
([#4053](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4053))
- Fix grpc instrumentation of callbacks
([#4097](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4097))
- Bridge trace builder
([#4090](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4090))
- Remove original handler when removelast in netty
([#4123](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4123))
### 🧰 Tooling
- Deprecate old extensions
([#3825](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3825))
- Add request parameter to EndTimeExtractor
([#3947](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3947))
- Make Config behave exactly as SDK DefaultConfigProperties
([#4035](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4035))
- Fix extension shading
([#4064](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4064))
- Add error parameter to EndTimeExtractor and AttributesExtractor#onEnd()
([#3988](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3988))
- Allow adding multiple ContextStore fields to one key class
([#4067](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4067),
[#4084](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4084),
[#4110](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4110))
## Version 1.5.3 - 2021-08-31
### 🛠️ Bug fixes
- Fix parsing of unclean map values in Config
([#4032](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/4032))
## Version 1.5.2 - 2021-08-27
### 🛠️ Bug fixes
- Fix unbounded metrics cardinality, which in particular causes memory leak when not using any
metrics exporter
([#3972](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3972))
## Version 1.5.1 - 2021-08-25
### 🛠️ Bug fixes
- Fix broken Android level 21-25 support in OkHttp 3 library instrumentation
([#3910](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3910))
- Fix maven central pom file for the opentelemetry-javaagent artifact
([#3929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3929))
- Fix maven central pom file for the opentelemetry-agent-for-testing artifact
([#3935](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3935))
## Version 1.5.0 - 2021-08-22
### 🌟 New library instrumentation
- Library instrumentation for Apache HTTP Client 4.3
([#3623](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3623))
- Library instrumentation for Ratpack server
([#3749](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3749))
### 📈 Enhancements
- Support Couchbase 3.2.0
([#3645](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3645))
- Handle port and IPv6 in forwarded headers
([#3651](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3651))
- Set real Hibernate span name on method entry to help samplers
([#3603](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3603))
- Reduce overhead of unsampled requests
([#3681](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3681))
- Sanitize SQL in Apache Camel instrumentation
([#3683](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3683),
[#3717](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3717))
- Add option to create span on new netty connection
([#3707](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3707))
- Propagate context into jdk http client callback
([#3719](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3719))
- Instrument Tomcat executor to support async servlets in new Tomcat 9.0.52 release
([#3789](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3789))
- Add otlp-logging exporter
([#3807](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3807))
- Add new option to support capturing nested client spans of different types
([#3691](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3691))
- Propagate context to lettuce callbacks
([#3839](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3839))
- Instrument ForkJoinTask.fork()
([#3849](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3849))
- Implement a Call.Factory for okhttp 3.x+ library instrumentation
([#3812](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3812))
- Record exception in Dubbo instrumentation
([#3851](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3851))
- Propagate context to elasticsearch callbacks
([#3858](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3858),
[#3861](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3861))
- Added Vertx http client 4 instrumentation
([#3665](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3665))
- Make empty agent bridged context equal root context
([#3869](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3869))
### 🛠️ Bug fixes
- Fix OkHttp 3 correlation when using callback under concurrency
([#3669](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3669),
[#3676](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3676))
- Fix Netty span not captured on read timeout
([#3613](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3613))
- Fix Netty connection failure handling when listener is lambda
([#3569](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3569))
- Fix NullPointerException in Apache HttpAsyncClient instrumentation
([#3692](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3692))
- Fix NullPointerException in Tomcat instrumentation
([#3705](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3705))
- Fix Apache HttpClient telemetry when host and absolute URI are used
([#3694](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3694))
- Fix JDK http client should propagate even when sampled out
([#3736](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3736))
- Limit netty exception capture to netty spans
([#3809](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3809))
- Fix jetty httpclient returning empty response when instrumented
([#3831](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3831),
[#3833](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3833))
- Don't clobber user decorators in Armeria client instrumentation
([#3873](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3873))
- Use valid Java identifiers for message keys
([#3863](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3863))
- Fix ClassNotFoundException: HandlerMappingResourceNameFilter in some ear deployments
([#3718](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3718))
### 🧰 Tooling
- Improve extension sample documentation and add it to the README file
([#3656](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3656))
- Extract muzzle check plugin
([#3657](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3657))
- Move instrumentation specific classes out of javaagent-instrumentation-api
([#3604](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3604))
- Publish muzzle plugins to Gradle Plugin Portal
([#3720](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3720),
[#3763](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3763))
- Fill `http.client_ip` in ServerInstrumenter
([#3756](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3756))
- Fix printMuzzleReferences gradle task
([#3808](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3808))
- Introduce stable property for external extensions
([#3823](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3823))
- Run tests on j9 JVM during CI
([#3764](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3764))
- Support looking up a ContextStore from outside of Advice
([#3827](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3827))
- Deprecate MetricExporterFactory
([#3862](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3862))
- Don't pass configuration to SDK autoconfigure through system props
([#3866](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3866))
- Rename Config get\*Property() methods to get\*()
([#3881](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3881))
## Version 1.4.0 - 2021-07-20
### ☢️ Behavioral changes
- Updated all instrumentation names to `io.opentelemetry.{libName}-{libVersion}`
([#3411](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3411))
- Updated RabbitMQ to follow semantic conventions
([#3425](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3425))
### 🌟 New javaagent instrumentation
- Jetty 9 HTTP client instrumentation
([#3079](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3079))
### 🌟 New library instrumentation
- Jetty 9 HTTP client instrumentation
([#3079](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3079))
- Jdbc instrumentation
([#3367](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3367))
### 📈 Enhancements
- Make @RabbitListener propagate context properly
([#3339](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3339))
- Add peer.service to grpc javaagent instrumentation
([#3357](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3357))
- Propagate context to cassandra4 callbacks
([#3371](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3371))
- Update Armeria instrumentation to support new Armeria 1.9.0 release
([#3407](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3407))
- Context propagation for ratpack Execution.fork()
([#3416](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3416))
### 🛠️ Bug fixes
- Fix Kafka stream instrumentation to support Kafka 2.6 and above
([#3438](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3438))
- Fix Dubbo trace/span cross-process propagation
([#3442](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3442))
- Fix `peer.service` configuration mapping
([#3378](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3378))
### 🧰 Tooling
- Hide Config#create() method and use builder everywhere
([#3338](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3338))
- Ignore task classes using IgnoredTypesConfigurer
([#3380](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3380))
- Exclude duplicate classes from final jars
([#3432](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3432),
[#3430](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3430))
- Port AsyncSpanEndStrategy to Instrumenter API
([#3262](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3262))
- Rename `opentelemetry-javaagent-api` artifact to `opentelemetry-javaagent-instrumentation-api`
([#3513](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3513))
## Version 1.3.1 - 2021-06-23
### 🛠️ Bug fixes
- Fix incorrect dependency in published BOM
([#3376](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3376))
- Fix UnsupportedOperationException with reactor-rabbitmq
([#3381](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3381))
- Fix Spring JMS not being instrumented
([#3359](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3359))
## Version 1.3.0 - 2021-06-17
### ☢️ Behavioral changes
- Update agent logger prefix
([#3007](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3007))
- Remove khttp instrumentation
([#3087](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3087))
- Enable akka actor instrumentation by default
([#3173](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3173))
### 🌟 New javaagent instrumentation
- Spring Integration javaagent instrumentation
([#3295](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3295))
### 🌟 New library instrumentation
- Spring Integration library instrumentation
([#3120](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3120))
### 📈 Enhancements
- Support peer-service-mapping in OkHttp3 instrumentation
([#3063](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3063))
- Low cardinality span names for Hibernate spans
([#3106](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3106))
- Propagate context to armeria callbacks
([#3108](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3108))
- Add attributes to netty connection failure span
([#3115](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3115))
- Defer initialization of OpenTelemetry in spring-boot-autoconfigure
([#3171](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3171))
- Support couchbase 3.1.6
([#3194](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3194))
- New experimental support for agent extensions
([#2881](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2881),
[#3071](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3071),
[#3226](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3226),
[#3237](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3237))
- Propagate context to akka http callbacks
([#3263](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3263))
### 🛠️ Bug fixes
- Remove Netty instrumented handler wrapper when original handler is removed
([#3026](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3026))
- Fix memory leak when Netty handler is a lambda
([#3059](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3059))
- Fix race condition on Undertow
([#2992](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2992))
- Remove db.connection_string from redis instrumentation
([#3094](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3094))
- Fix context propagation leak in Akka instrumentation
([#3099](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3099))
- Fix webflux handler span sporadically not ending
([#3150](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3150))
- End span on cancellation of subscription to reactive publishers
([#3153](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3153))
- End span on cancellation of Guava future
([#3175](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3175))
- Create Netty connection failure span only when first operation fails
([#3228](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3228))
- Internal instrumentation should always be enabled by default
([#3257](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3257))
- Fix context propagation leak in Akka HTTP instrumentation
([#3264](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3264))
- Only include exporters in the `-all` jar
([#3286](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3286))
- Fix ForkJoinPool sometimes not instrumented
([#3293](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3293))
### 🧰 Tooling
- Migrate MuzzlePlugin to Java
([#2996](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2996),
[#3017](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3017))
- Refactor TypeInstrumentation#transformers() method
([#3019](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3019))
- Change a couple of Longs to Integers in Instrumenter API
([#3043](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3043))
- Add peer.service to Instrumenter API
([#3050](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3050))
- Add response type parameter to db attributes extractor
([#3093](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3093))
- Add optimized Attributes implementation for Instrumenter
([#3136](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3136))
- Rename ComponentInstaller to AgentListener and add #order() method
([#3182](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3182))
- Update ByteBuddy
([#3254](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3254))
- Introduce IgnoredTypesConfigurer SPI to enable defining per-module ignores
([#3219](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3219))
- Extract agent shadow configuration to conventions script
([#3256](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3256))
- Deprecate SpanExporterFactory in favor of ConfigurableSpanExporterProvider
([#3299](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3299))
- Refactor span names class
([#3281](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3281))
- Move http client/server testing dependencies to internal package
([#3305](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/3305))
## Version 1.2.0 - 2021-05-14
### ☢️ Behavioral changes
- AWS lambda flush timeout raised to 10 seconds
([#2855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2855))
- `SERVER` span names improved for Spring MVC, Grails, Wicket, and Struts
([#2814](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2814))
- `SERVER` span names improved for Servlet filters
([#2887](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2887))
- `SERVER` span names improved for Resteasy
([#2900](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2900))
- `SERVER` span names improved for Jersey and CXF
([#2919](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2919))
- JAX-RS `@ApplicationPath` annotation captured as part of `SERVER` span name
([#2824](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2824))
- RequestDispatcher `forward()` and `include()` internal spans removed
([#2816](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2816))
- Raised gRPC min version supported to 1.6 in order to use new gRPC context bridge API
([#2948](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2948))
### 🌟 New javaagent instrumentation
- RxJava 3
([#2794](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2794))
### 🌟 New library instrumentation
- RxJava 3
([#2794](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2794))
### 📈 Enhancements
- Support sub-millisecond precision for start/end times on Java 9+
([#2600](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2600))
- `@WithSpan` async support added for methods returning async Reactor 3.x types
([#2714](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2714))
- `@WithSpan` async support added for methods returning Guava ListenableFuture
([#2811](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2811))
- Semantic attributes `code.namespace` and `code.function` captured on JAX-RS internal spans
([#2805](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2805))
- Context propagated to reactor-netty callbacks
([#2850](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2850))
### 🛠️ Bug fixes
- gRPC context bridging issues
([#2564](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issue/2564),
[#2959](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issue/2959))
- URL credentials of the form `https://username:password@www.example.com/` no longer captured
([#2707](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2707))
- Spring MVC instrumentation can cause Spring MVC to misroute requests under some conditions
([#2815](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2815))
- RxJava2 NoSuchFieldError
([#2836](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2836))
- Duplicate http client tracing headers
([#2842](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2842))
- Netty 4.1 listeners could not be removed by application
([#2851](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2851))
- NPE caused in gRPC ProtoReflectionService
([#2876](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2876))
- Context leak when using Ratpack
([#2910](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2910))
- Context leak when using Jetty
([#2920](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2920))
- Servlet instrumentation overwrites setStatus that was set manually earlier
([#2929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2929))
- Spans not captured on interface default methods annotated with JAX-RS annotations
([#2930](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2930))
### 🧰 Tooling
- Documented how to write InstrumentationModule line by line
([#2793](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2793))
- New instrumenter API used in JMS instrumentation
([#2803](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2803))
- Instrumenter API improvements
([#2860](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2860))
- Muzzle checks whether used fields are actually declared somewhere
([#2870](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2870))
- Extracted javaagent-extension-api from tooling & spi
([#2879](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/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](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2593))
- Renamed `runtime.jvm.gc.collection` metric to `runtime.jvm.gc.time`
([#2616](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2616))
### 🌟 New javaagent instrumentation
- Elasticsearch 7
([#2514](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2514),
[#2528](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2528))
- Couchbase 3.1
([#2524](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2524))
- Grails
([#2512](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2512))
- RocketMQ
([#2263](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2263))
- Lettuce 6
([#2589](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2589))
- Servlet 5
([#2609](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2609))
- Vaadin web framework
([#2619](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2619))
- GWT
([#2652](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2652))
- Tapestry web framework
([#2690](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2690))
- `@WithSpan` support for methods returning CompletableFuture
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530))
- `@WithSpan` support for methods returning async RxJava 2 types
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530))
### 🌟 New library instrumentation
- Library instrumentation for AWS SDK v1
([#2525](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2525))
- Library instrumentation for Lettuce 5.1
([#2533](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2533))
- RocketMQ
([#2263](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2263))
- Lettuce 6
([#2589](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2589))
- Spring Boot Autoconfigure support for `@WithSpan` methods returning CompletableFuture
([#2618](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2618))
- Spring Boot Autoconfigure support for `@WithSpan` methods returning async RxJava 2 types
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530))
### 📈 Improvements
- Move attributes to span builder for use by samplers
([#2587](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2587))
- Apache Camel - SNS propagation
([#2562](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2562))
- Apache Camel - S3 to SQS propagation
([#2583](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2583))
- Added `runtime.jvm.gc.count` metric
([#2616](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2616))
- Support reactor netty `HttpClient.from` construction
([#2650](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2650))
- Improve akka instrumentation
([#2737](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2737))
- Record internal metric for SQL cache misses
([#2747](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2747))
- End Netty 4.1 client and server spans when the response has completed, instead of when the
response has started
([#2641](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2641))
### 🛠️ Bug fixes
- Fix RestTemplateInterceptor so that it calls endExceptionally() on exception
([#2516](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2516))
- Fix app failure under Eclipse OSGi
([#2521](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2521))
- Fix undertow span ending too early
([#2560](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2560))
- Fix context leak in AWS SDK 2.2 and RocketMQ instrumentations
([#2637](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2637))
- Fix hang when a webflux http request is made inside of another webflux http request
(e.g. auth filter)
([#2646](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2646))
- Fix `@WithSpan` instrumentation breaking Java 6 classes
([#2699](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2699))
- Fix context not propagated over JMS when explicit destination used
([#2702](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2702))
- Fix StackOverflowError if jdbc driver implementation of Connection getMetaData calls Statement
execute
([#2756](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2756))
### 🧰 Tooling
- Make muzzle reference creation package(s) configurable
([#2615](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2615))
- Instrumentations now can skip defining context store manually
([#2775](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2775))
- New Instrumenter API
([#2596](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2596))