87 KiB
		
	
	
	
	
	
			
		
		
	
	
			87 KiB
		
	
	
	
	
	
Changelog
Unreleased
Version 1.16.0 (2022-07-19)
Migration notes
- Config has been replaced by ConfigProperties in Javaagent extensions SPIs
 - The deprecated TimeExtractor has been removed
 - The 
opentelemetry-instrumentation-api-annotation-supportartifact has been renamed toopentelemetry-instrumentation-annotation-support - The 
opentelemetry-annotationsinstrumentation suppression key has been renamed toopentelemetry-extension-annotations - The 'otel.javaagent.experimental.use-noop-api' flag has been removed, as this capability is now
available via the 
otel.experimental.sdk.enabledflag 
🌟 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)
 
Version 1.15.0 (2022-06-16)
Migration notes
- The 
opentelemetry-jboss-logmanager-1.1artifact has been renamed toopentelemetry-jboss-logmanager-appender-1.1 - The play instrumentation name has changed from 
playtoplay-mvc(#6106) - The vertx-http-client instrumentation name has changed from 
vertx-clienttovertx-http-client(#6106) - The metric 
process.runtime.java.memory.maxhas been renamed toprocess.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)
 
Version 1.14.0 (2022-05-17)
Migration notes
- The 
opentelemetry-log4j-appender-2.16artifact has been renamed toopentelemetry-log4j-appender-2.17 - The 
opentelemetry-log4j-context-data-2.16-autoconfigureartifact has been renamed toopentelemetry-log4j-context-data-2.17-autoconfigure - Micrometer library instrumentation has been removed as it has been moved to the core repo and
is now published under 
io.opentelemetry:opentelemetry-micrometer1-shim - The rxjava javaagent instrumentation names for suppression have changed to 
rxjava AgentListener#beforeAgent()has been deprecated, as it is not expect to be needed by extensions authorsConfigPropertySourcehas been deprecated in favor ofConfigCustomizer- Several changes in the Instrumentation API
RequestMetricshas been renamed toOperationMetricsRequestListenerhas been renamed toOperationListenerErrorCauseExtractor#extractCause()has been renamed toextract()ContextCustomizerandRequestListenerstart()/end()methods have been renamed toonStart()/onEnd()
 - The 
opentelemetry-javaagent-instrumentation-apiartifact has been merged into theopentelemetry-javaagent-extension-apiartifact 
🌟 New javaagent instrumentation
- Add jboss-logmanager mdc support (#5842)
 - Spring-kafka single record instrumentation (#5904)
 - Add metrics instrumentation for grpc (#5923)
 - Add vertx-kafka-client instrumentation (#5973, #5982)
 - Hide the GC runtime metrics behind an experimental config flag (#5990)
 - Add HikariCP connection pool metrics (#6003)
 
🌟 New library instrumentation
📈 Enhancements
- Enable span suppression by SpanKey by default (#5779)
 - record exception in dubbo high version (#5892)
 - Introduce LocalRootSpan (replacing ServerSpan) (#5896)
 - Add javaagent<->application context bridge for HttpRouteHolder (#5838)
 - Exclude spring temporary type matching class loader (#5912)
 - Load agent classes child first (#5950)
 - Avoid looking up annotation types during type matching (#5906)
 - Add an SPI for customizing Config just before it's set (#6010)
 
🛠️ Bug fixes
- Fix duplicate class error on Android build (#5882)
 - Avoid npe in netty 4.1 instrumentation (#5902)
 - Fix logging exporter autoconfiguration issue (#5928)
 - fix NPE for commons-httpclient v3.1 (#5949)
 - Exclude duplicate project classes from inst/ (#5957)
 - Ignore known problematic jdbc wrappers (#5967)
 - Fix default enabled for runtime and oshi metrics (#5989)
 - Mitigate against another kafka leak (#6021)
 
Version 1.13.1 (2022-04-22)
🛠️ Bug fixes
- Fix duplicate class error on Android build (#5882)
 - Fix spring-kafka single record instrumentation (#5904)
 
Version 1.13.0 (2022-04-19)
Migration notes
- Micrometer instrumentation is now automatically applied to spring-boot-actuator apps
 - Some configuration properties have been renamed:
otel.instrumentation.common.experimental.suppress-controller-spans->otel.instrumentation.common.experimental.controller-telemetry.enabled(important: note that the meaning is inverted)otel.instrumentation.common.experimental.suppress-view-spans->otel.instrumentation.common.experimental.view-telemetry.enabled(important: note that the meaning is inverted)otel.instrumentation.netty.always-create-connect-span->otel.instrumentation.netty.connection-telemetry.enabledotel.instrumentation.reactor-netty.always-create-connect-span->otel.instrumentation.reactor-netty.connection-telemetry.enabled
 - Runtime memory metric names were updated to reflect semantic conventions
 - Micrometer library instrumentation has been deprecated as it has been moved to the core repo and
is now published under 
io.opentelemetry:opentelemetry-micrometer1-shim - Library instrumentation entry points have been renamed from 
*Tracingto*Telemetry 
🌟 New javaagent instrumentation
🌟 New library instrumentation
📈 Enhancements
- Elasticsearch rest client low cardinality span names (#5584)
 - Implement "Prometheus mode" for better micrometer->OTel->Prometheus support (#5537)
 - Apply micrometer instrumentation to spring-boot-actuator apps (#5666)
 - Sql sanitizer: handle double quoted table names (#5699)
 - Spring Boot Starter service-name is constant (#5359)
 - Update runtime memory metrics to reflect semantic conventions (#5718)
 - change rpc type in apache dubbo (#5432)
 - Rework context propagation to redisson async callback (#5748)
 - Resolve end strategy after WithSpan method instead of before. (#5756)
 - Allow scanning instrumented reactor publishers and only allow registe… (#5755)
 - Faster type matching (#5724)
 - Use UnsynchronizedAppenderBase as base class for our logback appender (#5818)
 - Do not set the http.route attribute in JSF instrumentations (#5819)
 - Use micrometer1-shim in micrometer javaagent instrumentation, deprecate library instrumentation (#5820)
 - Rename netty 
always-create-connect-spanproperty toconnection-telemetry(#5834) - Update the http.route attribute even for not sampled server spans (#5844)
 
🛠️ Bug fixes
- Fix possible deadlock (#5585)
 - Prevent possible deadlock in downstream distro (#5830)
 - Limit problems from kafka iterator instrumentation thread context leak (#5826)
 
🧰 Tooling
- Remove deprecated methods from instrumentation-api and library instrumentations (#5575)
 - Split out RpcAttributesGetter (#5548)
 - Run tests with jdk17 (#5598)
 - Split out MessagingAttributesGetter (#5626)
 - Run Gradle and compile code with Java 17 (#5623)
 - Rename library entrypoints to Telemetry (#5624)
 - Add InstrumenterBuilder.addRequestListener (#5655)
 - Simplify HttpUrlConnection instrumentation (#5673)
 - Convert all logging statements from slf4j to jul (#5674)
 - Allows passing an OpenTelemetry instance to registerObservers() methods. (#5716)
 - Make it possible to register multiple helper resources under the same… (#5703)
 - Split out instrumentation-api-semconv (#5721)
 - Move ClassNames & SpanNames to .util package (#5746)
 - Library instrumentation should read its version from a file (#5692)
 - Rename view and controller suppression config properties (#5747)
 - Deprecate AttributesExtractor#set() method (#5749)
 - Cleanup Config & ConfigBuilder API (#5733)
 - Instrumenter instrumentation version and schema url (#5752)
 
Version 1.12.1 (2022-03-17)
🛠️ Bug fixes
Version 1.12.0 (2022-03-12)
🌟 New javaagent instrumentation
- Add Azure SDK instrumentation (#5467)
 
📈 Enhancements
- Use repository interface name in spring data operation name (#5352)
 - Change the way Micrometer LongTaskTimer is bridged (#5338)
 - Updates to http.server_name (#5369)
 - Support forwarded proto field and x-forwarded-proto (#5357)
 - Remove server span peer name (#5404)
 - Add peer service support back to couchbase26 (#5451)
 - Remove duplicative JAXRS HttpClient instrumentation (#5430)
 - Add experimental thread attributes for logs (#5474)
 - Add log4j 1.2 appender MDC capture (#5475)
 - Capture logback formatted message (#5497)
 - Add JBoss java.util.logging support (#5498)
 - Disable the messaging receive span telemetry by default (#5500)
 - Remove old experimental properties in CapturedHttpHeaders (#5524)
 - Avoid conflicts in Micrometer description mapping (#5452)
 
🛠️ Bug fixes
- Fix another reverse lookup (#5393)
 - Regression in loading the prometheus exporter (#5408)
 - Fix muzzle failure on calls to primitive array clone (#5405)
 - Fix regression in spring-scheduling span name (#5436)
 - Fix android desugaring for HashMap.forEach (#5468)
 - Fix duplicate class definition of ContextDataProvider (#5528)
 - Do not propagate gRPC deadline when propagating OTel context via javaagent (#5543)
 
🧰 Tooling
- Split out CodeAttributesGetter (#5342)
 - Add prometheus smoke test (#5417)
 - Set custom gRPC client/server span name extractor (#5244)
 - Split out DbClientAttributesGetter and SqlClientAttributesGetter (#5354)
 - Add builders for setting optional attributes on HTTP extractors (#5347)
 - Write http server tests in java (#5501)
 - Deprecate CapturedHttpHeaders and replace it with builder methods (#5533)
 - Update to Groovy 4 (#5532)
 
Version 1.11.1 (2022-02-21)
🛠️ Bug fixes
- Regression in loading the prometheus exporter (#5408)
 
Version 1.11.0 (2022-02-11)
Migration notes
- The previous release (1.10.0) deprecated the entire 
io.opentelemetry.instrumentation.api.tracerpackage in theinstrumentation-apiartifact, and the package was removed in this release. - The javaagent 
-slimartifact has been dropped in this release, because the exporters are much smaller now and there is no longer a significant size difference between the-slimand default artifacts. - The 
opentelemetry-aws-lambda-1.0has been split into two artifactsopentelemetry-aws-lambda-core-1.0andopentelemetry-aws-lambda-events-2.2. 
🌟 New javaagent instrumentation
- Spring RMI instrumentation (#5033)
 
🌟 New library instrumentation
- Ratpack httpclient (#4787)
 
📈 Enhancements
- Add 
http.routeto server spans where route was already being captured for span name (#5086, #5240, #5242, #5241, #5239) - Use RPC attributes from spec for AWS SDK (#5166)
 - SdkTracerProvider auto closed as separate Context Bean (#5124) (#5125)
 - Support redisson 3.16.8+ (#5201)
 - Support AWS SDK v1 request object subclasses. (#5231)
 - Remove slim artifact (#5251)
 - kotlinx-coroutines-reactor context propagation (#5196)
 - Log a warning whenever GlobalOpenTelemetry.set() is called (#5264)
 - Use 
http.routeinHttpServerMetrics(#5266) - Use VirtualField for associating netty listener with wrapper (#5282)
 - Add code attributes to spring-scheduling spans (#5306)
 - Propagate context into redisson async callback (#5313)
 - Add max measurements to Micrometer Timer & DistributionSummary (#5303)
 - Make it possible to configure base time unit used by the Micrometer bridge (#5304)
 - Make HttpClientMetrics report low cardinality metrics (#5319)
 - Implement NamingConvention support in Micrometer bridge (#5328)
 - Add net.peer.name and net.peer.port attributes for grpc client span (#5324)
 - Split lambda instrumentation into core and events (#5326)
 - Add jaeger remote sampler to agent (#5346)
 - Weak cache optimization (#5344)
 
🛠️ Bug fixes
- Several micrometer instrumentation fixes (#5118)
 - Fix serialisation exception on default lambda events (#4724)
 - NoSuchMethodError when using agent and modules (JPMS) (#5169)
 - Spring boot cloud gateway, context propagation broken (#5188)
 - Akka http server span names are always akka.request #3478 (#5150)
 - Recover from duplicate class definition errors (#5185)
 - Fix serialization for quartz JobExecutionContext (#5263)
 - End jedis span when operation actually ends (#5256)
 - Enable oshi ProcessMetrics in javaagent (#5281)
 - Add missing return type matchers to the executor instrumentation (#5294)
 - Fix triggering of DNS lookup (#5297)
 - Avoid potential for reverse name lookup (#5305)
 - Fix WeakConcurrentMap memory leak (#5316)
 - AWS Lambda instrumentation requires jackson and lambda-events on the classpath (#5326)
 
🧰 Tooling
- Convert InstrumentationTestRunner from interface to abstract class (#5112)
 - Parameterize VirtualField field type (#5165)
 - Remove old TraceUtils and use InstrumentationTestRunner#run*Span() (almost) everywhere (#5160)
 - Remove deprecated tracer API (#5175)
 - Remove HttpServerTest#extraAttributes() method (#5176)
 - Rename ServerSpanNaming to HttpRouteHolder (#5211)
 - Don't run testLatestDeps on alpha/beta/rc versions (#5258)
 - Refactor HTTP attributes extractors to use composition over inheritance (#5030, #5194 #5267)
 - Refactor AttributesExtractor so that it extracts route from Context (#5288)
 - Publish gradle-plugins to Maven Central (#5333)
 
Version 1.10.1 (2022-01-27)
🛠️ Bug fixes
- Regression in project reactor context propagation instrumentation (#5188)
 - Recover from duplicate class definition errors (#5185)
 - StringIndexOutOfBoundsException in AWS SDK v1 when using request object subclass (#5231)
 - Update to OTel SDK 1.10.1 (#5218)
 
Version 1.10.0 (2022-01-15)
Migration notes
- The 
opentelemetry-log4j-2.13.2artifact has been renamed toopentelemetry-context-data-2.16-autoconfigure - The 
opentelemetry-logback-1.0artifact has been renamed toopentelemetry-logback-mdc-1.0 - The 
opentelemetry-ratpack-1.4artifact has been renamed toopentelemetry-ratpack-1.7and only supports Ratpack 1.7 and above now 
🌟 New javaagent instrumentation
- Logback appender instrumentation to send logs through the OpenTelemetry logging pipeline (#4939, #4968)
 - Log4j 2.x appender instrumentation to send logs through the OpenTelemetry logging pipeline (#4944, #4959, #4966)
 - Log4j 1.2 appender instrumentation to send logs through the OpenTelemetry logging pipeline (#4943)
 - java.util.logging instrumentation to send logs through the OpenTelemetry logging pipeline (#4941)
 - Micrometer instrumentation to send micrometer metrics through the OpenTelemetry metrics pipeline (#4919, #5001, #5017)
 
🌟 New library instrumentation
- Logback appender to send logs through the OpenTelemetry logging pipeline (#4984)
 - Log4j 2.x appender to send logs through the OpenTelemetry logging pipeline (#4375, #4907)
 - Ktor instrumentation (#4983)
 - Micrometer instrumentation to send micrometer metrics through the OpenTelemetry metrics pipeline (#5063)
 
📈 Enhancements
- Renamed Apache Dubbo and Log4j MDC library artifacts (#4779)
 - Added http4 handler to apache-camel instrumentation (#4650)
 - Capture servlet request parameters (#4703)
 - Propagate Context instead of SpanContext in Kafka instrumentation (#4806)
 - Instrument ContextPropagationOperator to bridge lib/agent calls (#4786)
 - Add shouldStart() call to Armeria server instrumentation (#4843)
 - Capture RPC metrics (#4838)
 - Update log4j library base version (#4914)
 - Rename log4j-thread-context modules to log4j-context-data (#4957)
 - Support latest oshi version (#4993)
 - Support latest RxJava version (#4954)
 - Create producer span from spring integration instrumentation (#4932)
 - Capture servlet request parameters at the end of the request (#5019)
 - Don't extract deprecated cassandra keyspace attribute (#5041)
 - Add OTLP logs exporters (#5060, #5088)
 - End redisson span when the operation actually ends (#5073)
 - Don't capture high-cardinality http.target as metrics attribute (#5081)
 
🛠️ Bug fixes
- Remove virtual field interfaces from reflection results (#4722)
 - Work around jvm crash on early 1.8 (#4345)
 - Fix http.url handing in vert.x 3 http client (#4739)
 - Capture missing RMI spans (#4764)
 - Avoid crashing on early 1.8 openjdk vms (#4789)
 - Fix Quarkus correlation (#4883)
 - Fix RabbitMQ instrumentation consumption on empty headers (#4903)
 - Fix NPE in Apache HttpClient 4.0 instrumentation (#4913)
 - Fix NPE in RocketMQ instrumentation (#4901)
 - Fix time units in HTTP & RPC metrics (#4963)
 - Fix some gauge types (#4962)
 - Fix context propagation for undertow async dispatch (#4950)
 - Fix redefinition failure on openj9 (#5009)
 - Fix NPE in rmi server instrumentation (#5042)
 
🧰 Tooling
- Merge start and end time extractors (#4692)
 - Move cache implementations to internal package (#4746)
 - Reorganize shared servlet code (intro to #4317) (#4785)
 - Move 
AppServerBridgeandMappingResolvertoservlet-common:bootstrap(#4817) - Move 
ServletContextPathtoservlet-common:bootstrap(#4824) - Expose AutoConfiguredOpenTelemetrySdk to AgentListener (#4831)
 - Deprecate the Tracer API (#4868)
 - Remove ConfigPropertiesAdapter as it's no longer needed (#4888)
 - Refactor 
ServerSpanNaming(in preparation forhttp.route) (#4852) - Move SpanKey to internal package (#4869)
 
Version 1.9.2 (2022-01-07)
🛠️ Bug fixes
- Fix reactor-netty memory/connection leak (#4867)
 
Version 1.9.1 (2021-12-01)
🛠️ Bug fixes
- Shade class references within AWS SDK service files (#4752)
 
Version 1.9.0 (2021-11-25)
📈 Enhancements
- Don't report 400 level as error for SERVER spans (#4403)
 - Netty instrumentation now captures 
http.scheme(#4446, #4576) - Stabilize HTTP headers capturing configuration property names (#4459)
 - Add metrics to remaining http instrumentation (#4541)
 - Remove hibernate session spans (#4538)
 - Support Jedis 4 (#4555)
 - Trace DNS resolution in Netty 4.1 and reactor-netty (#4587, #4627)
 - Update garbage collector instruments to be async counters (#4600)
 - Update HTTP metrics view to match the specification (#4556)
 - Improve Spring Integration interceptor ordering (#4602)
 - Support Restlet 2.0 (#4535)
 - Improved capture of couchbase queries (#4615)
 - Trace SSL handshakes in netty 4.0 and 4.1 (#4635, #4604)
 - Capture exception on finatra controller spans (#4669)
 - Capture exception on async servlet spans (#4677)
 - Automatic AWS library instrumentor (#4607)
 - Support spring boot 2.6.0 (#4687)
 
🛠️ Bug fixes
- Preserve caught netty exception in the context instead of calling end() (#4413)
 - Extract net attributes both on start and on end in netty HTTP client (#4420)
 - Capture metric dimensions from end attributes also (#4430)
 - Avoid logging servlet3 muzzle failure when running on servlet2 (#4474)
 - Fix JettyHttpClient9TracingInterceptor NullPointerException (#4527)
 - Fix context propagation in tomcat thread pool (#4521)
 - Add missing java.util.logging.Logger methods to PatchLogger (#4540)
 - Fix ClassCircularityError when running with security manager (#4557)
 - Fix sun.misc.Unsafe generation on Java 17 (#4558)
 - Fix IndexOutOfBounds in apache http clients (#4575)
 - Fix RMI instrumentation on Java 17 (#4577)
 - Fix Spring Integration instrumentation name (#4601)
 - Capture instrumentation version provided by application tracer correctly when using agent (#4630)
 - Ensure that netty 4.0 instrumentation is not applied to 4.1 (#4626)
 - Fix muzzle problems happening when netty without SSL is used (#4631)
 - Fix memory leak when using ktor-client-java (#4637)
 - Fix quartz instrumentation name (#4657)
 - Fix Spring Integration context leak (#4673)
 - Fix exemplars (#4678)
 - Fix and enforce Android support (#4671, #4667 #4505)
 
🧰 Tooling
- Migrate to Spock 2 (#4458)
 - Rename 
newBuilder()tobuilder()(#4475) - Sync gradle-plugins version with main project (#4248)
 - Muzzle match only once in each class loader (#4543)
 - Inject helper resources only once (#4573)
 - Improve muzzle check for constructors (#4591)
 - Add version to the InstrumenterBuilder and Instrumenter (#4611)
 - Add a ClassAndMethod class to Instrumentation API (#4619)
 - Implement a dedicated reactor-netty 1.0 instrumentation (#4662)
 - Remove gRPC dependency for export (#4674)
 - Start using Gradle Enterprise instance (#4663)
 
Version 1.8.0 - Bad Release
Due to an issue in the publishing infrastructure, a bad release was published as 1.8.0. Do not use it.
Version 1.7.0 (2021-10-19)
📈 Enhancements
- Change the default javaagent artifact to have exporters, introduce new 
-slimartifact, and deprecate the-allartifact (#4106) - Support jlinked images without jdk.unsupported module (#4154) (#4124)
 - Added experimental option to suppress messaging receive spans (#4187) (#4204)
 - Refine 404 handling in Restlet instrumentation (#4206)
 - Remove dynamo db.name attribute (#4208)
 - Remove capturing http.url in server instrumentation in favor of http.scheme, http.host and http.target (#4209)
 - Intern db info to reduce memory consumption (#4263)
 - Better JAX-RS async cancel handling (#4279)
 - Extract HTTP request/response headers as span attributes (#4237, #4309, #4320, #4321, #4328, #4395)
 - Support kafka streams 3 (#4236)
 - AWS lambda - improvements in custom type handling in wrappers, SQS event wrapper added (#4254)
 - Add code attributes to quartz spans (#4332)
 - Collect more attributes from servlet instrumenter (#4356)
 - Allow reactor instrumentation to pick up spans from reactor context (#4159)
 - Hide virtual field accessor interface methods from reflection (#4390)
 
🛠️ Bug fixes
- Fix spring context reload issue (#4051)
 - Remove incorrect lettuce db.statement attribute (#4160)
 - Fix tomcat async spans (#4339)
 
🧰 Tooling
- Add start/end time to RequestListener (#4155)
 - Add context customizer hook to Instrumenter API (#4167)
 - Transform lambda classes (#4182)
 - Separate HTTP client/server AttributesExtractors (#4195)
 - Introduce muzzle-specific interface to InstrumentationModule (#4207)
 - Make it possible to use InstrumentationContext (now VirtualField) from library instrumentation (#4218)
 - Add functionality to generate API changes (#4285)
 - Split NetAttributesExtractor into NetClientAttributesExtractor and NetServerAttributesExtractor (#4287)
 - Back VirtualField with a volatile field (#4355)
 - Convert AttributesExtractor to interface (#4363)
 - Rename some 
*InstrumenterBuilderclasses to*InstrumenterFactory(#4391) - rename 
newBuilder()tobuilder()(#4407) 
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)
 
Version 1.6.1 (2021-09-29)
🛠️ Bug fixes
- Fix possible JDBC instrumentation deadlock (#4191)
 
Version 1.6.0 (2021-09-18)
🌟 New javaagent instrumentation
🌟 New library instrumentation
📈 Enhancements
- Extract Jedis 3 net attributes from InetSocketAddress (#3912)
 - Add option to suppress controller and view spans (#3865)
 - Capture http.user_agent for AsyncHttpClient (#3930)
 - Instrument spring-kafka batch message listeners (#3922)
 - Use unsafe to inject classes to the bootstrap class loader (#4026)
 - Some performance optimizations (#4004, #4006, #4008, #4013, #4014)
 - Do not fallback to net attributes for http.client_ip (#4063)
 - Start a CONSUMER span for Kafka poll() (#4041)
 - Support otlp http exporter (#4068)
 - Better grpc events (#4098)
 
🛠️ Bug fixes
- Bridge span keys defined in instrumentation-api (#3911)
 - Hide generated fields and methods from reflection (#3948)
 - Remove invalid message header (#3958)
 - Fix memleak in the Netty ChannelPipeline instrumentation (#4053)
 - Fix grpc instrumentation of callbacks (#4097)
 - Bridge trace builder (#4090)
 - Remove original handler when removelast in netty (#4123)
 
🧰 Tooling
- Deprecate old extensions (#3825)
 - Add request parameter to EndTimeExtractor (#3947)
 - Make Config behave exactly as SDK DefaultConfigProperties (#4035)
 - Fix extension shading (#4064)
 - Add error parameter to EndTimeExtractor and AttributesExtractor#onEnd() (#3988)
 - Allow adding multiple ContextStore fields to one key class (#4067, #4084, #4110)
 
Version 1.5.3 (2021-08-31)
🛠️ Bug fixes
- Fix parsing of unclean map values in Config (#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)
 
Version 1.5.1 (2021-08-25)
🛠️ 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)
 
Version 1.5.0 (2021-08-22)
🌟 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)
 - Publish muzzle plugins to Gradle Plugin Portal (#3720, #3763)
 - Fill 
http.client_ipin 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)
 
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
📈 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.serviceconfiguration 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-apiartifact toopentelemetry-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 
-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)
☢️ 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)
 
🌟 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)
 
🛠️ 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)
☢️ Behavioral 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)