This release targets the OpenTelemetry SDK 1.58.0.
Note that many artifacts 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.
⚠️ Breaking Changes
- Remove support for previously deprecated property
otel.instrumentation.logback-appender.experimental.capture-logstash-attributes(#15722) - Remove deprecated methods from HTTP library instrumentations (#15802)
🚫 Deprecations
- JMX Metrics: Deprecated
addClassPathRulesandaddCustomRulesmethods inJmxTelemetryBuilder, and moved non-public classes to an internal package (#15658) - Deprecated
setMessagingReceiveInstrumentationEnabledin favor ofsetMessagingReceiveTelemetryEnabledto match config property name (#15668) - Deprecated database client attribute getter methods
getDbSystem()andgetResponseStatus()in favor ofgetDbSystemName()andgetResponseStatusCode()to align with stable semantic conventions (#15696) - Deprecated
setCapturedRequestParameters()in Servlet library instrumentation in favor ofExperimental.setCapturedRequestParameters()as request parameter capture is experimental (#15826) - Deprecated
getHttpClient(),setHttpClientTransport(), andsetSslContextFactory()in Jetty client instrumentation in favor of new builder-style methodsnewHttpClient(),newHttpClient(SslContextFactory), andnewHttpClient(HttpClientTransport, SslContextFactory)(#15827) - Deprecate Netty experimental method that is still in public API (#15828)
- Deprecated
newHttpClient()in favor ofwrap()in Java HTTP Client instrumentation for consistency with naming conventions across library instrumentations (#15829) - Deprecated
new*methods in favor ofcreate*methods across multiple instrumentation libraries for consistency (e.g.,newHttpClient()→createHttpClient(),newInterceptor()→createInterceptor()) (#15832) - Deprecated methods in
SqlStatementInfoandMultiQueryin favor of methods using stable semantic convention terminology:getFullStatement()→getQueryText(),getOperation()→getOperationName(), andgetStatements()→getQueryTexts()(#15833) - Deprecated database getter methods in favor of methods using stable semantic convention terminology:
getResponseStatusCode()→getDbResponseStatusCode(),getBatchSize()→getDbOperationBatchSize(), andgetQueryParameters()→getDbQueryParameters()(#15859)
📈 Enhancements
- Spring Boot starter: add support for
otel.instrumentation.logback-appender.experimental.capture-template(#15649) - Spring Boot Starter: Support Spring Boot 4 RestClient (#15684)
- Improve support for experimental declarative configuration (#15656, #15688, #15697, #15698, #15704, #15707, #15713, #15714, #15722, #15727, #15732, #15733, #15734, #15735, #15740, #15741, #15742, #15752, #15756, #15787, #15791, #15792, #15841, #15856)
- AWS Bedrock: support model IDs with regional prefixes (e.g.,
us.,global.) for inference profiles (#15751) - Redis: Improve sanitization for ACL command (#15797)
- Ktor and Netty library instrumentations: Add
setSpanNameExtractorCustomizer(#15825) - Support more of stable database semconv under opt-in flag (#15836, #15854)
- Move
SpanStatusExtractor.extract()beforeOperationListener.onEnd()inInstrumenter(#15844)
🛠️ Bug fixes
- Servlet library instrumentation: fix capturing
enduser.id(#15858) - Fix agent startup failing on read-only filesystem (#15682)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk
@brunobat
@copilot-pull-request-reviewer
@gaeljw
@igreenfield
@jack-berg
@jaydeluca
@jkwatson
@JonasKunz
@laurit
@mznet
@novoslavik
@philsttr
@robsunday
@steverao
@SylvainJuge
@toon-borgers-hs
@trask
@yairogen
@zeitlinger