opentelemetry-java-instrumentation v2.29.0
opentelemetry-java-instrumentation v2.29.0
This release targets the OpenTelemetry SDK 1.63.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.
⚠️ Breaking changes to non-stable APIs
- Change the return type for
JmxTelemetry.start(...)APIs. (#18782) - Experimental runtime package telemetry now emits
package.checksum_algorithm=SHA-256and 64-characterpackage.checksumvalues instead of SHA1 checksums. (#18846)
🚫 Deprecations
- Rename the common logging context keys to
otel.instrumentation.common.logging.trace-id-key,otel.instrumentation.common.logging.span-id-key, andotel.instrumentation.common.logging.trace-flags-key, while keeping the old property names deprecated. (#18851) - Rename the
kafka-brokerandkafka-connectJMX target systems toexperimental-kafka-brokerandexperimental-kafka-connect; the old names still work for now and log a warning. (#18971)
🌟 New javaagent instrumentation
- Add SOFARPC 5.4 instrumentation that emits RPC client and server spans and metrics. (#15589)
- Add Javaagent instrumentation for HBase client 2.0.0 through 2.5.0. (#18253)
📈 Enhancements
- Add opt-in support for emitting HTTP request exceptions as log signals with
otel.semconv.exception.signal.preview=logs. (#16259) - Add
opentelemetry-api-1.63Javaagent instrumentation for OpenTelemetry API 1.63 andopentelemetry-api-incubator1.63. (#18911) - Add
otel.semconv-stability.v3-previewas a fallback for the declarativev3_previewsemconv stability setting. (#18936) - Update the experimental stable database semantic-convention opt-in (
otel.semconv-stability.opt-in=database) across database instrumentations, including span names anddb.*attributes. (#18808, #18853, #18920, #18922, #18926, #18930, #18970, #18979, #18980, #18984, #18985, #18986, #18987, #18989, #18990, #18992, #18993, #19004, #19005) - Capture query text and parameterization for Cassandra batch statements. (#18964)
- Keep
opentelemetry-apiandopentelemetry-instrumentation-annotationsenabled underotel.instrumentation.common.v3-previeweven whendefault-enabled=false. (#18792) - When
otel.instrumentation.common.v3-previewis enabled, affected instrumentations emituser.*identity attributes instead ofenduser.*ones. (#18795) - Disable Kafka client metrics by default when
otel.instrumentation.common.v3-preview=true. (#18828) - Recognize Amazon Aurora DSQL and AWS wrapper JDBC URL prefixes when parsing JDBC connection metadata. (#18831)
- Set instrumentation versions on emitted Meter scopes. (#18866)
- Run
@WithSpaninstrumentation after other instrumentations so other advice can attach attributes to the active span. (#18874) - Emit database client failures as
db.client.operation.exceptionlogs whenotel.semconv.exception.signal.previewis enabled. (#18889) - Emit RPC exceptions as log records when
otel.semconv.exception.signal.preview=logsis enabled. (#18890) - Emit messaging exceptions as log records under
otel.semconv.exception.signal.preview. (#18891) - Emit
faas.invocation.exceptionlog records for FaaS exceptions whenotel.semconv.exception.signal.preview=logsis enabled. (#18892) - Emit
gen_ai.client.operation.exceptionlogs for OpenAI chat and embeddings failures whenotel.semconv.exception.signal.preview=logsis enabled. (#18893) - Emit AWS SDK request failures as
rpc.client.call.exceptionlog records whenotel.semconv.exception.signal.preview=logsis enabled. (#18894) - Declarative configuration now supports per-domain semantic-convention selection using
semconv.version,semconv.experimental, andsemconv.dual_emitsettings. (#18908) - When
otel.instrumentation.common.v3-previewis enabled, useotel.semconv-stability.previewinstead ofotel.semconv-stability.opt-into opt in to the nonstableservice.peerandrpcsemantic conventions. (#18914) - Disable Kotlin coroutines
@WithSpaninstrumentation by default whenotel.instrumentation.common.v3-preview=true. (#18919) - Use the summary-aware path in
SqlQueryAnalyzer.analyze()whenotel.instrumentation.common.v3-previewis enabled. (#18921) - When
otel.instrumentation.common.v3-previewis enabled, deprecated JDBC/db sanitization config names are ignored in favor ofdb.query_sanitization.enabled. (#18934) - Include
jvm.gc.causeon GC duration metrics whenotel.instrumentation.common.v3-previewis enabled. (#18967) - Emit duration metrics for JDBC transaction operations
COMMITandROLLBACK. (#19003) - Use a generated
InstrumentationVersionclass in OkHttp 3.0 instead of reading embedded version properties, avoiding Android StrictMode disk-read violations. (#19006) - Add thread details span attributes for declarative Spring starter configuration when
distribution.spring_starter.thread_details_enabledis set. (#19008)
🛠️ Bug fixes
- Preserve the current context for Redisson command execution futures so async operations continue the active trace. (#18701)
- Stop the Pulsar agent from creating duplicate receive spans for multi-topic consumers. (#18771)
- Fix a hang in Ktor client streaming requests so spans end promptly with Ktor 3.5.0. (#18781)
- Fix a
BedrockconverseStreamNullPointerExceptionwhen a tool call has empty arguments. (#18783) - Capture the Pulsar message ID earlier so producer spans can record it reliably. (#18803)
- Fix SQLite JDBC statement and prepared-statement instrumentation so SQLite connections produce SQL spans and parameter capture. (#18885)
- Fix Logback MDC declarative configuration keys so
otel.instrumentation/development.java.*settings apply correctly. (#18924) - Fix SQL password sanitization for mixed-case DDL targets like
create tableandalter table. (#18927) - Logs emitted through async Log4j loggers now keep the application thread’s OpenTelemetry
Contextinstead of falling back to span-only recovery. (#18937) - Avoid instrumentation errors when loading
redis.clients.jedis.Jedis,BinaryJedis, andUnifiedJedis. (#19000) - Run OpenSearch async callbacks with the request’s parent context. (#19027)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@amccague @anuraaga @breedx-splk @chlos @Cirilla-zmh @Deafaibrahim @dengliming @fangxiu-wf @iblancasa @jack-berg @jakob-o @jaydeluca @jkoronaAtCisco @laurit @somiljain2006 @stefanopace @steverao @SylvainJuge @tejasae-afk @trask @typat @vikinghawk @YaoYingLong @zeitlinger
Source open-telemetry/opentelemetry-java-instrumentation ·
v2.29.0· 2026-06-19 · upstream release
Mirrored verbatim for indexing. All rights belong to the upstream project.
Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.