OpenTelemetry - java Instrumentation
This release targets the OpenTelemetry SDK 1.17.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.
This release of the opentelemetry-instrumentation-api represents a release candidate for this artifact, and we are expecting this artifact to be declared stable in the next month or two.
Migration notes
- The
@WithSpanand@SpanAttributeannotations has been moved from theio.opentelemetry:opentelemetry-extension-annotationsartifact to theio.opentelemetry.instrumentation:opentelemetry-instrumentation-annotationsin order to live and evolve alongside the instrumentation itself. The instrumentation will continue to support the old artifact for backwards compatibility, but new annotation-based features will only be built out and supported with the new annotation artifact. InstrumenterBuilder.newInstrumenter()is renamed toInstrumenterBuilder.buildInstrumenter()(#6363)io.opentelemetry.instrumentation.api.config.Configis deprecated (#6360)HttpCommonAttributesGetter.requestContentLengthUncompressed()andresponseContentLengthUncompressedare deprecated (#6383)- Ktor 2.0 instrumentation name is changed from
io.opentelemetry.ktor-1.0toio.opentelemetry.ktor-2.0(#6452) io.opentelemetry.opentelemetry-annotations-1.0instrumentation name is changed toio.opentelemetry.opentelemetry-instrumentation-annotations-1.16(#6450)- Liberty instrumentation names are changed from
io.opentelemetry.libertyandio.opentelemetry.liberty-dispatchertoio.opentelemetry.liberty-20.0andio.opentelemetry.liberty-dispatcher-20.0(#6456) - The 2-arg variant of HttpCommonAttributesGeter#statusCode() is deprecated (#6466)
- The
opentelemetry-spring-starterartifact has been renamed toopentelemetry-spring-boot-starter, theopentelemetry-otlp-exporter-starterartifact has been removed and is now directly a part of theopentelemetry-spring-boot-starterartifact, theopentelemetry-zipkin-exporter-starterartifact has been renamed toopentelemetry-zipkin-spring-boot-starter, and theopentelemetry-zipkin-exporter-starterartifact has been renamed toopentelemetry-zipkin-spring-boot-starter(#6453) - Update net semantic convention changes based on recent specification changes:
net.peer.iprenamed tonet.sock.peer.addr,net.host.iprenamed tonet.sock.host.addr,net.peer.namerenamed tonet.sock.peer.namefor socket-level instrumentation, andNetClientAttributesGetter.peerIp(),NetServerAttributesGetter.peerIp(), andNetServerAttributesGetter.peerPort()are deprecated (#6268)
📈 Enhancements
- Move buffer pool metrics out of experimental (#6370)
- Add code attributes to several instrumentations (#6365)
- Add http.client|server.request|response.size metrics (#6376)
- Add Kafka instrumentation to the Spring Boot starter (#6371)
- Extract HTTP request & response content length from headers (#6415)
- Support DataDirect and Tibco Jdbc URLs (#6420)
- Set http.route in spring-autoconfigure webmvc instrumentation (#6414)
- Grizzly: capture all matching request & response headers (#6463)
- Capture messaging header value as span attribute (#6454)
- Add JDBC-specific sanitizer property (#6472)
🛠️ Bug fixes
- Fix duplicate spans for Quarkus gRPC server (#6356)
- Update Kafka library instrumentation to support version 3.0.0 and later (#6457)
- Mongodb: avoid duplicate tracing (#6465)
- Fix netty instrumentation NoSuchElementException (#6469)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuraaga @breedx-splk @cuichenli @drewhammond @dzydzany @gquintana @iNikem @jack-berg @jkwatson @laurit @lmolkova @mateuszrzeszutek @mingchuno @ppatierno @snicoll @trask @urwah1996 @XSAM @zackman0010 @ziitizen