Skip to content

Commit 33c9561

Browse files
authored
Merge branch 'main' into kotlin-ktor
2 parents ff1ad9d + 46ee351 commit 33c9561

File tree

118 files changed

+2125
-2753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+2125
-2753
lines changed

.fossa.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,9 @@ targets:
829829
- type: gradle
830830
path: ./
831831
target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent'
832+
- type: gradle
833+
path: ./
834+
target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.56:javaagent'
832835
- type: gradle
833836
path: ./
834837
target: ':instrumentation:pekko:pekko-actor-1.0:javaagent'

.github/workflows/build-daily-no-build-cache.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ jobs:
2929
# muzzle is not included here because it doesn't use gradle cache anyway and so is already covered
3030
# by the normal daily build
3131

32-
# link-check and misspell-check are not included here because they don't use gradle cache
33-
# anyway and so are already covered by the normal daily build
32+
# link-check is not included here because it doesn't use gradle cache anyway and so is already
33+
# covered by the normal daily build
3434

3535
workflow-notification:
3636
permissions:

.github/workflows/build-daily.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ jobs:
3434
markdown-lint-check:
3535
uses: ./.github/workflows/reusable-markdown-lint-check.yml
3636

37-
misspell-check:
38-
uses: ./.github/workflows/reusable-misspell-check.yml
39-
4037
workflow-notification:
4138
permissions:
4239
contents: read
@@ -46,7 +43,6 @@ jobs:
4643
- test-latest-deps
4744
- muzzle
4845
- link-check
49-
- misspell-check
5046
if: always()
5147
uses: ./.github/workflows/reusable-workflow-notification.yml
5248
with:
@@ -55,6 +51,5 @@ jobs:
5551
needs.common.result == 'success' &&
5652
needs.test-latest-deps.result == 'success' &&
5753
needs.muzzle.result == 'success' &&
58-
needs.link-check.result == 'success' &&
59-
needs.misspell-check.result == 'success'
54+
needs.link-check.result == 'success'
6055
}}

.github/workflows/build-pull-request.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@ jobs:
5353
markdown-lint-check:
5454
uses: ./.github/workflows/reusable-markdown-lint-check.yml
5555

56-
misspell-check:
57-
uses: ./.github/workflows/reusable-misspell-check.yml
58-
5956
required-status-check:
6057
# test-latest-deps is not included in the required status checks
6158
# because any time a new library version is released to maven central
@@ -71,7 +68,6 @@ jobs:
7168
- muzzle
7269
- shell-script-check
7370
- markdown-lint-check
74-
- misspell-check
7571
runs-on: ubuntu-latest
7672
if: always()
7773
steps:
@@ -82,8 +78,7 @@ jobs:
8278
(
8379
needs.muzzle.result != 'success' ||
8480
needs.shell-script-check.result != 'success' ||
85-
needs.markdown-lint-check.result != 'success' ||
86-
needs.misspell-check.result != 'success'
81+
needs.markdown-lint-check.result != 'success'
8782
)
8883
)
8984
run: exit 1 # fail

.github/workflows/build.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,9 @@ jobs:
5151
if: "!startsWith(github.ref_name, 'release/')"
5252
uses: ./.github/workflows/reusable-markdown-lint-check.yml
5353

54-
misspell-check:
55-
# release branches are excluded to avoid unnecessary maintenance if new misspellings are added
56-
# to the misspell dictionary
57-
if: "!startsWith(github.ref_name, 'release/')"
58-
uses: ./.github/workflows/reusable-misspell-check.yml
59-
6054
publish-snapshots:
6155
needs:
62-
# intentionally not blocking snapshot publishing on test-latest-deps, muzzle,
63-
# link-check, or misspell-check
56+
# intentionally not blocking snapshot publishing on test-latest-deps, muzzle, or link-check
6457
- common
6558
runs-on: ubuntu-latest
6659
# skipping release branches because the versions in those branches are not snapshots

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,9 @@ jobs:
201201
echo "prior-version=$PRIOR_VERSION" >> $GITHUB_OUTPUT
202202
203203
documentation-audit:
204+
permissions:
205+
contents: read
206+
issues: write
204207
needs:
205208
- release
206209
uses: ./.github/workflows/documentation-synchronization-audit.yml

.github/workflows/reusable-misspell-check.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,128 @@
22

33
## Unreleased
44

5+
## Version 2.22.0 (2025-11-20)
6+
7+
### ⚠️ Breaking Changes
8+
9+
- AWS SDK 2.x attributes updated to align with semantic conventions
10+
([#15028](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15028))
11+
- The following attributes have been renamed:
12+
- `aws.bucket.name` (S3) → `aws.s3.bucket`
13+
- `aws.queue.url` (SQS) → `aws.sqs.queue.url`
14+
- `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`
15+
- `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`
16+
- `aws.dynamodb.provisioned_throughput.read_capacity_units``aws.dynamodb.provisioned_read_capacity` (type changed from long to double)
17+
- `aws.dynamodb.provisioned_throughput.write_capacity_units``aws.dynamodb.provisioned_write_capacity` (type changed from long to double)
18+
- `aws.dynamodb.exclusive_start_table_name``aws.dynamodb.exclusive_start_table`
19+
- `aws.dynamodb.projection_expression``aws.dynamodb.projection`
20+
- `aws.dynamodb.scan_index_forward``aws.dynamodb.scan_forward`
21+
- The following attribute types have changed:
22+
- `aws.dynamodb.table_names`: string → string[]
23+
- `aws.dynamodb.consumed_capacity`: string → string[]
24+
- `aws.dynamodb.global_secondary_indexes`: string → string[]
25+
- `aws.dynamodb.local_secondary_indexes`: string → string[]
26+
- `aws.dynamodb.consistent_read`: string → boolean
27+
- `aws.dynamodb.table_count`: string → long
28+
- `aws.dynamodb.limit`: string → long
29+
- `aws.dynamodb.attributes_to_get`: string → string[]
30+
- `aws.dynamodb.segment`: string → long
31+
- `aws.dynamodb.total_segments`: string → long
32+
- `aws.dynamodb.count`: string → long
33+
- `aws.dynamodb.scanned_count`: string → long
34+
- The following attributes are no longer emitted by default but can be enabled with
35+
`otel.instrumentation.aws-sdk.experimental-span-attributes=true`:
36+
- `aws.queue.name` (SQS)
37+
- `aws.lambda.function.name` (Lambda)
38+
- `aws.lambda.function.arn` (Lambda)
39+
- JDBC library data source instrumentation now disabled by default
40+
([#15074](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15074))
41+
- JMX state metrics unit changed from empty string to `1` to align with semantic conventions
42+
([#15093](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15093))
43+
- AWS SDK 1.x attributes updated to align with semantic conventions
44+
([#15094](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15094))
45+
- Only affects users with `otel.instrumentation.aws-sdk.experimental-span-attributes=true`
46+
- The following attributes have been renamed and are now emitted by default (no experimental flag required):
47+
- `aws.bucket.name` (S3) → `aws.s3.bucket`
48+
- `aws.queue.url` (SQS) → `aws.sqs.queue.url`
49+
- `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`
50+
- `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`
51+
- Finatra controller spans now disabled by default to match other controller spans
52+
([#15118](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15118))
53+
- Netty HTTP request wrapper class renamed from HttpRequestAndChannel to NettyRequest
54+
([#15247](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15247))
55+
- JSP compile spans now disabled by default to match other view spans
56+
([#15261](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15261))
57+
58+
### 🚫 Deprecations
59+
60+
- TracingConsumerInterceptor and TracingProducerInterceptor deprecated in favor of new configurable interceptors
61+
([#14929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14929))
62+
- Various builder methods updated to use UnaryOperator<X> instead of Function<X, X>
63+
([#15101](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15101))
64+
- DbClientCommonAttributesGetter deprecated in favor of DbClientAttributesGetter
65+
([#15139](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15139))
66+
67+
### 🌟 New javaagent instrumentation
68+
69+
- Add JFinal instrumentation
70+
([#15216](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15216))
71+
72+
### 📈 Enhancements
73+
74+
- Avoid Unsafe usage on Java 23+
75+
([#14855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14855),
76+
[#15091](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15091))
77+
- Update Azure SDK instrumentation so `az.namespace` can be used for sampling
78+
([#15068](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15068))
79+
- Spring Boot Starter: Add cache to reduce environment variable lookups
80+
([#15132](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15132))
81+
- HTTP instrumentations now emit semantic convention schema URL
82+
([#15144](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15144))
83+
- Added instrumentation support for AsyncHttpClient version 1.8
84+
([#15195](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15195))
85+
- Instrumenter customizer now receives instrumentation type
86+
([#15227](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15227))
87+
- Added support for Spring Framework 7.0
88+
([#15287](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15287),
89+
[#15299](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15299),
90+
[#15301](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15301),
91+
[#15304](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15304),
92+
[#15311](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15311),
93+
[#15362](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15362),
94+
[#15371](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15371))
95+
- Added span status customizer to incubating InstrumenterCustomizer API
96+
([#15288](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15288))
97+
- Added configuration options for sqlcommenter
98+
([#15169](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15169))
99+
- GraphQL instrumentation now records data fetcher errors
100+
([#15289](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15289))
101+
- Add http client url template customizer
102+
([#15217](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15217))
103+
- Introduce idiomatic `JmxTelemetry` API for JMX metrics library
104+
([#15220](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15220))
105+
- Add instrumentation for OpenTelemetry API incubator's `ExtendedOpenTelemetry`
106+
([#15178](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15178))
107+
108+
### 🛠️ Bug fixes
109+
110+
- Fix missing `peer.service` in Netty HTTP spans
111+
([#14963](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14963))
112+
- Fix Couchbase span kind to be `CLIENT` instead of `INTERNAL`
113+
([#14995](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14995))
114+
- Link attributes are now bridged to the Java agent when using OpenTelemetry API
115+
([#15143](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15143))
116+
- Potential race condition in JFR runtime metrics initialization fixed
117+
([#15231](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15231))
118+
- Regression fixed related to context propagation when using Spring `@EnableAsync`
119+
([#15249](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15249))
120+
- Declarative configuration now uses snake_case for distro resource provider attribute name
121+
([#15260](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15260))
122+
- Logback appender fixed to capture Logstash `StructuredArguments.entries()`
123+
([#15341](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15341))
124+
- Fix context propagation in Spring WebFlux 7.0 client reactive callbacks
125+
([#15336](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15336))
126+
5127
## Version 2.21.0 (2025-10-17)
6128

7129
## ⚠️ Breaking Changes

benchmark-overhead/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
22
id("java")
3-
id("com.diffplug.spotless") version "8.0.0"
3+
id("com.diffplug.spotless") version "8.1.0"
44
}
55

66
spotless {

build.gradle.kts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,24 +76,25 @@ if (gradle.startParameter.taskNames.contains("listTestsInPartition")) {
7676
throw GradleException("Invalid test partition")
7777
}
7878

79-
val partitionTasks = ArrayList<Test>()
79+
val partitionTasks = ArrayList<String>()
8080
var testPartitionCounter = 0
8181
subprojects {
8282
// relying on predictable ordering of subprojects
8383
// (see https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#N14CB4)
8484
// since we are splitting these tasks across different github action jobs
8585
val enabled = testPartitionCounter++ % 4 == testPartition
8686
if (enabled) {
87+
val projectPath = this.path
8788
tasks.withType<Test>().configureEach {
88-
partitionTasks.add(this)
89+
val taskPath = projectPath + ":" + this.name
90+
partitionTasks.add(taskPath)
8991
}
9092
}
9193
}
9294

9395
doLast {
9496
File("test-tasks.txt").printWriter().use { writer ->
95-
partitionTasks.forEach { task ->
96-
var taskPath = task.project.path + ":" + task.name
97+
partitionTasks.forEach { taskPath ->
9798
// smoke tests are run separately
9899
// :instrumentation:test runs all instrumentation tests
99100
if (taskPath != ":smoke-tests:test" && taskPath != ":instrumentation:test") {

0 commit comments

Comments
 (0)