no notes
no notes
no notes
This release targets the OpenTelemetry SDK 1.61.0.
Note that many artifacts have the -alpha suffix attached to their version number, reflecting that they will continue to have breaking changes. Please see VERSIONING.md for more details.
AbstractKtorServerTelemetryBuilder.isOpenTelemetryInitialized() protected (previously public). (#17509)ExperimentalInstrumentationModule.injectClasses(ClassInjector) with exposedClassNames() for exposing helper classes to the application class loader. (#17765)WebApplicationContextInstrumentation from the spring-web instrumentation module to spring-webmvc; users who disabled it via otel.instrumentation.spring-web.enabled=false must now use otel.instrumentation.spring-webmvc.enabled=false. (#17856)KafkaTelemetryBuilder.setMessagingReceiveInstrumentationEnabled(boolean) in favor of setMessagingReceiveTelemetryEnabled(boolean). (#17092)setSanitizeQuery() and setAddOperationNameToSpanName(), and deprecated config key otel.instrumentation.graphql.add-operation-name-to-span-name.enabled in favor of setQuerySanitizationEnabled(), setOperationNameInSpanNameEnabled(), and otel.instrumentation.graphql.operation-name-in-span-name.enabled. (#17093)Experimental.setEnableSqlCommenter() in JDBC and R2DBC instrumentation in favor of Experimental.setSqlCommenterEnabled(). (#17094)otel.instrumentation.servlet.capture-request-parameters to otel.instrumentation.servlet.experimental.capture-request-parameters and otel.instrumentation.servlet.add-trace-id-request-attribute to otel.instrumentation.servlet.experimental.trace-id-request-attribute.enabled; old property names are deprecated. (#17113)statement_sanitizer in favor of query_sanitization, and the declarative config group common.database in favor of common.db. (#17116)query_sanitizer in favor of query_sanitization. (#17455)otel.instrumentation.common.db-statement-sanitizer.enabled, otel.instrumentation.jdbc.statement-sanitizer.enabled, otel.instrumentation.mongo.statement-sanitizer.enabled, and otel.instrumentation.r2dbc.statement-sanitizer.enabled in favor of the corresponding *.query-sanitization.enabled names, deprecated otel.instrumentation.common.experimental.db-sqlcommenter.enabled in favor of otel.instrumentation.common.db.experimental.sqlcommenter.enabled, and deprecated otel.instrumentation.graphql.query-sanitizer.enabled in favor of otel.instrumentation.graphql.query-sanitization.enabled. (#17464)InstrumentationModule.isIndyModule(); indy mode is now determined by the agent distribution configuration instead of per-module overrides. (#17713)log4j.map_message. prefix from MapMessage attributes when otel.instrumentation.common.v3-preview is enabled. (#13871)otel.instrumentation.common.v3-preview is enabled, so captured header attribute keys now preserve the original header name. (#14554)db.system.name attribute to Vertx SQL client instrumentation when stable database semantic conventions are enabled (otel.semconv-stability.opt-in=database). (#16254)db.system.name attribute with stable semantic convention values (e.g., postgresql, oracle.db, ibm.db2, sap.hana) when stable database semantic conventions are enabled (otel.semconv-stability.opt-in=database). (#16277)otel.instrumentation.common.v3-preview flag that enables upcoming 3.0 breaking changes early. (#16459)messaging.kafka.bootstrap.servers attribute to Kafka producer spans when otel.instrumentation.kafka.experimental-span-attributes is enabled. (#17065)otel.instrumentation.common.v3-preview is enabled. (#17173)otel.javaagent.add-thread-details) by default when otel.instrumentation.common.v3-preview is enabled. (#17215)messaging.kafka.offset attribute to Kafka instrumentation, gated behind otel.semconv-stability.preview=messaging. (#17785)otel.instrumentation.common.v3-preview is enabled. (#17822)AgentBuilder.Default.transformations with a ClassFileTransformer hook, avoiding a JDK 26 JEP 500 warning about writing to a final field via reflection. (#17824)Tracer.isEnabled(), metric instrument isEnabled(), and Logger.setBody(Body). (#17849)WebClientBeanPostProcessor and RestClientBeanPostProcessor to avoid replacing user-customized builder beans when the OpenTelemetry tracing filter/interceptor is already registered. (#15546)restoreThreadContext not always being called by Ktor coroutine machinery. (#16487)schemaUrl to servlet response instrumenter. (#16560)OpenTelemetryContextDataProvider calling GlobalOpenTelemetry.get() during class initialization, which could interfere with SDK setup ordering. (#16638)unsafe.run to lose their parent. (#16647)VALUE-type attributes set via AttributeKey.valueKey() on spans and log records through the javaagent API bridge. (#16750)httpurlconnection, methods, and rmi instrumentations to use MethodHandles.Lookup instead of unsafe fallback on JDK 23+. (#17050)preferJfr is enabled but JFR is not available. (#17058)NullPointerException in servlet instrumentation when response object is null during error handling. (#17087)setPropagationEnabled(false) and not inject trace context into message headers when propagation is disabled. (#17231)IgnoredClassLoadersMatcher caused by computeIfAbsent holding a lock while calling loadClass. (#17241)triggerListener was refactored into a lambda. (#17405)ProducerRecord headers are read-only (e.g. when a record is sent a second time). (#17530)NullPointerException in Undertow instrumentation when the active-handlers context key is absent. (#17559)HttpServerResponseCustomizer error isolation so that a failing customizer no longer prevents subsequent customizers from running. (#17617)rocketmq-client-4.8 instrumentation not recording spans for ONEWAY messages. (#17656)otel.instrumentation.common.default-enabled is set to false. (#17657)ClassNotFoundException in MicrometerBridgeAutoConfiguration when Spring Boot Actuator metrics module is not on the classpath in Spring Boot 4. (#17723)otel.instrumentation.runtime-telemetry.emit-experimental-metrics=true, which could impose unwanted JFR recording overhead on users who only wanted the JMX-based experimental metrics. JFR-based experimental metrics are now gated by a separate otel.instrumentation.runtime-telemetry.emit-experimental-jfr-metrics property. (#18110)This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk @caglareker @divitsinghall @IswaryaIyapalam @jaydeluca @kchrusciel @kriegaex @laurit @lenin-jaganathan @lmolkova @lucacavenaghi97 @maryliag @mznet @onurkybsi @pepeshore @sam-ov @steverao @SylvainJuge @trask @Tusharika725 @unalpolat @utafrali @wpessers @xiangtianyu @YaoYingLong @zeitlinger @zhenlin-pay2