|
4 | 4 |
|
5 | 5 | ### ⚠️ Breaking changes to non-stable APIs |
6 | 6 |
|
7 | | -- Changed the return type for `JmxTelemetry.start(...)` APIs. |
| 7 | +- Change the return type for `JmxTelemetry.start(...)` APIs. |
8 | 8 | ([#18782](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18782)) |
| 9 | +- Experimental runtime package telemetry now emits `package.checksum_algorithm=SHA-256` and |
| 10 | + 64-character `package.checksum` values instead of SHA1 checksums. |
| 11 | + ([#18846](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18846)) |
| 12 | + |
| 13 | +### 🚫 Deprecations |
| 14 | + |
| 15 | +- Rename the common logging context keys to `otel.instrumentation.common.logging.trace-id-key`, |
| 16 | + `otel.instrumentation.common.logging.span-id-key`, and |
| 17 | + `otel.instrumentation.common.logging.trace-flags-key`, while keeping the old property names |
| 18 | + deprecated. |
| 19 | + ([#18851](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18851)) |
| 20 | +- Rename the `kafka-broker` and `kafka-connect` JMX target systems to |
| 21 | + `experimental-kafka-broker` and `experimental-kafka-connect`; the old names still work for now |
| 22 | + and log a warning. |
| 23 | + ([#18971](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18971)) |
| 24 | + |
| 25 | +### 🌟 New javaagent instrumentation |
| 26 | + |
| 27 | +- Add SOFARPC 5.4 instrumentation that emits RPC client and server spans and metrics. |
| 28 | + ([#15589](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15589)) |
| 29 | +- Add Javaagent instrumentation for HBase client 2.0.0 through 2.5.0. |
| 30 | + ([#18253](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18253)) |
| 31 | + |
| 32 | +### 📈 Enhancements |
| 33 | + |
| 34 | +- Add opt-in support for emitting HTTP request exceptions as log signals with |
| 35 | + `otel.semconv.exception.signal.preview=logs`. |
| 36 | + ([#16259](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/16259)) |
| 37 | +- Add `opentelemetry-api-1.63` Javaagent instrumentation for OpenTelemetry API 1.63 and |
| 38 | + `opentelemetry-api-incubator` 1.63. |
| 39 | + ([#18911](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18911)) |
| 40 | +- Add `otel.semconv-stability.v3-preview` as a fallback for the declarative `v3_preview` semconv |
| 41 | + stability setting. |
| 42 | + ([#18936](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18936)) |
| 43 | +- Update the experimental stable database semantic-convention opt-in |
| 44 | + (`otel.semconv-stability.opt-in=database`) across database instrumentations, including span names |
| 45 | + and `db.*` attributes. |
| 46 | + ([#18808](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18808), |
| 47 | + [#18853](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18853), |
| 48 | + [#18920](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18920), |
| 49 | + [#18922](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18922), |
| 50 | + [#18926](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18926), |
| 51 | + [#18930](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18930), |
| 52 | + [#18970](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18970), |
| 53 | + [#18979](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18979), |
| 54 | + [#18980](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18980), |
| 55 | + [#18984](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18984), |
| 56 | + [#18985](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18985), |
| 57 | + [#18986](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18986), |
| 58 | + [#18987](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18987), |
| 59 | + [#18989](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18989), |
| 60 | + [#18990](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18990), |
| 61 | + [#18992](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18992), |
| 62 | + [#18993](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18993), |
| 63 | + [#19004](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19004), |
| 64 | + [#19005](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19005)) |
| 65 | +- Capture query text and parameterization for Cassandra batch statements. |
| 66 | + ([#18964](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18964)) |
| 67 | +- Keep `opentelemetry-api` and `opentelemetry-instrumentation-annotations` enabled under |
| 68 | + `otel.instrumentation.common.v3-preview` even when `default-enabled=false`. |
| 69 | + ([#18792](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18792)) |
| 70 | +- When `otel.instrumentation.common.v3-preview` is enabled, affected instrumentations emit `user.*` |
| 71 | + identity attributes instead of `enduser.*` ones. |
| 72 | + ([#18795](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18795)) |
| 73 | +- Disable Kafka client metrics by default when `otel.instrumentation.common.v3-preview=true`. |
| 74 | + ([#18828](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18828)) |
| 75 | +- Recognize Amazon Aurora DSQL and AWS wrapper JDBC URL prefixes when parsing JDBC connection |
| 76 | + metadata. |
| 77 | + ([#18831](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18831)) |
| 78 | +- Set instrumentation versions on emitted Meter scopes. |
| 79 | + ([#18866](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18866)) |
| 80 | +- Run `@WithSpan` instrumentation after other instrumentations so other advice can attach |
| 81 | + attributes to the active span. |
| 82 | + ([#18874](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18874)) |
| 83 | +- Emit database client failures as `db.client.operation.exception` logs when |
| 84 | + `otel.semconv.exception.signal.preview` is enabled. |
| 85 | + ([#18889](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18889)) |
| 86 | +- Emit RPC exceptions as log records when `otel.semconv.exception.signal.preview=logs` is enabled. |
| 87 | + ([#18890](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18890)) |
| 88 | +- Emit messaging exceptions as log records under `otel.semconv.exception.signal.preview`. |
| 89 | + ([#18891](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18891)) |
| 90 | +- Emit `faas.invocation.exception` log records for FaaS exceptions when |
| 91 | + `otel.semconv.exception.signal.preview=logs` is enabled. |
| 92 | + ([#18892](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18892)) |
| 93 | +- Emit `gen_ai.client.operation.exception` logs for OpenAI chat and embeddings failures when |
| 94 | + `otel.semconv.exception.signal.preview=logs` is enabled. |
| 95 | + ([#18893](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18893)) |
| 96 | +- Emit AWS SDK request failures as `rpc.client.call.exception` log records when |
| 97 | + `otel.semconv.exception.signal.preview=logs` is enabled. |
| 98 | + ([#18894](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18894)) |
| 99 | +- Declarative configuration now supports per-domain semantic-convention selection using |
| 100 | + `semconv.version`, `semconv.experimental`, and `semconv.dual_emit` settings. |
| 101 | + ([#18908](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18908)) |
| 102 | +- When `otel.instrumentation.common.v3-preview` is enabled, use |
| 103 | + `otel.semconv-stability.preview` instead of `otel.semconv-stability.opt-in` to opt in to the |
| 104 | + nonstable `service.peer` and `rpc` semantic conventions. |
| 105 | + ([#18914](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18914)) |
| 106 | +- Disable Kotlin coroutines `@WithSpan` instrumentation by default when |
| 107 | + `otel.instrumentation.common.v3-preview=true`. |
| 108 | + ([#18919](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18919)) |
| 109 | +- Use the summary-aware path in `SqlQueryAnalyzer.analyze()` when |
| 110 | + `otel.instrumentation.common.v3-preview` is enabled. |
| 111 | + ([#18921](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18921)) |
| 112 | +- When `otel.instrumentation.common.v3-preview` is enabled, deprecated JDBC/db sanitization config |
| 113 | + names are ignored in favor of `db.query_sanitization.enabled`. |
| 114 | + ([#18934](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18934)) |
| 115 | +- Include `jvm.gc.cause` on GC duration metrics when |
| 116 | + `otel.instrumentation.common.v3-preview` is enabled. |
| 117 | + ([#18967](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18967)) |
| 118 | +- Emit duration metrics for JDBC transaction operations `COMMIT` and `ROLLBACK`. |
| 119 | + ([#19003](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19003)) |
| 120 | +- Use a generated `InstrumentationVersion` class in OkHttp 3.0 instead of reading embedded |
| 121 | + version properties, avoiding Android StrictMode disk-read violations. |
| 122 | + ([#19006](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19006)) |
| 123 | +- Add thread details span attributes for declarative Spring starter configuration when |
| 124 | + `distribution.spring_starter.thread_details_enabled` is set. |
| 125 | + ([#19008](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19008)) |
| 126 | + |
| 127 | +### 🛠️ Bug fixes |
| 128 | + |
| 129 | +- Preserve the current context for Redisson command execution futures so async operations continue |
| 130 | + the active trace. |
| 131 | + ([#18701](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18701)) |
| 132 | +- Stop the Pulsar agent from creating duplicate receive spans for multi-topic consumers. |
| 133 | + ([#18771](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18771)) |
| 134 | +- Fix a hang in Ktor client streaming requests so spans end promptly with Ktor 3.5.0. |
| 135 | + ([#18781](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18781)) |
| 136 | +- Fix a `Bedrock` `converseStream` `NullPointerException` when a tool call has empty arguments. |
| 137 | + ([#18783](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18783)) |
| 138 | +- Capture the Pulsar message ID earlier so producer spans can record it reliably. |
| 139 | + ([#18803](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18803)) |
| 140 | +- Fix SQLite JDBC statement and prepared-statement instrumentation so SQLite connections produce |
| 141 | + SQL spans and parameter capture. |
| 142 | + ([#18885](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18885)) |
| 143 | +- Fix Logback MDC declarative configuration keys so `otel.instrumentation/development.java.*` |
| 144 | + settings apply correctly. |
| 145 | + ([#18924](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18924)) |
| 146 | +- Fix SQL password sanitization for mixed-case DDL targets like `create table` and `alter table`. |
| 147 | + ([#18927](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18927)) |
| 148 | +- Logs emitted through async Log4j loggers now keep the application thread's OpenTelemetry `Context` |
| 149 | + instead of falling back to span-only recovery. |
| 150 | + ([#18937](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/18937)) |
| 151 | +- Avoid instrumentation errors when loading `redis.clients.jedis.Jedis`, `BinaryJedis`, and |
| 152 | + `UnifiedJedis`. |
| 153 | + ([#19000](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19000)) |
| 154 | +- Run OpenSearch async callbacks with the request's parent context. |
| 155 | + ([#19027](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/19027)) |
9 | 156 |
|
10 | 157 | ## Version 2.28.1 (2026-05-20) |
11 | 158 |
|
|
0 commit comments