Skip to content

Commit 90d5791

Browse files
authored
Bump ADOT Java version to 2.20.0 and OTel deps to 2.20.1 (#1246)
This PR updates the upstream dependency OpenTelemetry Java Agent to their 2025 Sep. release version 2.20.1 (opentelemetry-instrumentation:2.20.1). By doing so, the following upstream OpenTelemetry dependencies are automatically updated along with the Java Agent: opentelemetry-api: 1.54.1 opentelemetry-sdk: 1.54.1 opentelemetry-semconv: 1.37.0 Conflicts between the ADOT patch and the two upstream PRs below are resolved in this PR. Rename lambda instrumentation helper class open-telemetry/opentelemetry-java-instrumentation#14371 Let AWS Lambda SQS handlers report partial batch failures open-telemetry/opentelemetry-java-instrumentation#14468 Tests Performed Unit tests: ./gradlew build test Smoke/contract tests: ./gradlew appsignals-tests:contract-tests:contractTests Manual E2E tests: Spring Boot EC2 sample app Java Lambda function Spring Boot web application hosted on AWS Lambda By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 6ea0ae3 commit 90d5791

File tree

7 files changed

+42
-54
lines changed

7 files changed

+42
-54
lines changed
Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts
2-
index 98def282f8..65fd6a8a13 100644
2+
index 2772032e73..c84a6662cf 100644
33
--- a/dependencyManagement/build.gradle.kts
44
+++ b/dependencyManagement/build.gradle.kts
5-
@@ -104,7 +104,7 @@ val DEPENDENCIES = listOf(
5+
@@ -101,7 +101,7 @@ val DEPENDENCIES = listOf(
66
"io.netty:netty:3.10.6.Final",
77
"io.opentelemetry.contrib:opentelemetry-azure-resources:${otelContribVersion}",
88
"io.opentelemetry.contrib:opentelemetry-aws-resources:${otelContribVersion}",
@@ -11,31 +11,16 @@ index 98def282f8..65fd6a8a13 100644
1111
"io.opentelemetry.contrib:opentelemetry-gcp-resources:${otelContribVersion}",
1212
"io.opentelemetry.contrib:opentelemetry-cloudfoundry-resources:${otelContribVersion}",
1313
"io.opentelemetry.contrib:opentelemetry-baggage-processor:${otelContribVersion}",
14-
diff --git a/instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TomcatIntegrationTest.java b/instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TomcatIntegrationTest.java
15-
index 1234567890..abcdef1234 100644
16-
--- a/instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TomcatIntegrationTest.java
17-
+++ b/instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TomcatIntegrationTest.java
18-
@@ -20,8 +20,8 @@ public class TomcatIntegrationTest extends TargetSystemTest {
19-
20-
@ParameterizedTest
21-
@CsvSource({
22-
+ // TODO: Remove this patch after we no longer depend on 2.18.1 of opentelemetry-java-instrumentation.
23-
"tomcat:10.0, https://tomcat.apache.org/tomcat-10.0-doc/appdev/sample/sample.war",
24-
- "tomcat:9.0, https://tomcat.apache.org/tomcat-9.0-doc/appdev/sample/sample.war"
25-
})
26-
void testCollectedMetrics(String dockerImageName, String sampleWebApplicationUrl)
27-
throws Exception {
14+
2815
diff --git a/version.gradle.kts b/version.gradle.kts
29-
index 023d04703c..ec9690086c 100644
16+
index 282db803a9..5e7f1c6775 100644
3017
--- a/version.gradle.kts
3118
+++ b/version.gradle.kts
3219
@@ -1,5 +1,5 @@
33-
-val stableVersion = "2.18.1"
34-
-val alphaVersion = "2.18.1-alpha"
35-
+val stableVersion = "2.18.1-adot1"
36-
+val alphaVersion = "2.18.1-adot1-alpha"
20+
-val stableVersion = "2.20.1"
21+
-val alphaVersion = "2.20.1-alpha"
22+
+val stableVersion = "2.20.1-adot1"
23+
+val alphaVersion = "2.20.1-adot1-alpha"
3724

3825
allprojects {
3926
if (findProperty("otel.stable") != "true") {
40-
--
41-
2.45.1

.github/patches/versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
OTEL_JAVA_INSTRUMENTATION_VERSION=v2.18.1
1+
OTEL_JAVA_INSTRUMENTATION_VERSION=v2.20.1
22
OTEL_JAVA_CONTRIB_VERSION=v1.48.0

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@ If your change does not need a CHANGELOG entry, add the "skip changelog" label t
2121
([#1201](https://github.com/aws-observability/aws-otel-java-instrumentation/pull/1201))
2222
- Add support for new formal database semantic convention keys.
2323
([#1162](https://github.com/aws-observability/aws-otel-java-instrumentation/pull/1162))
24+
- Bump ADOT Java version to 2.20.0 and OTel deps to 2.20.1.
25+
([#1246](https://github.com/aws-observability/aws-otel-java-instrumentation/pull/1246))

dependencyManagement/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ data class DependencySet(val group: String, val version: String, val modules: Li
2727
val testSnapshots = rootProject.findProperty("testUpstreamSnapshots") == "true"
2828

2929
// This is the version of the upstream instrumentation BOM
30-
val otelVersion = "2.18.1-adot1"
31-
val otelSnapshotVersion = "2.19.0"
30+
val otelVersion = "2.20.1-adot1"
31+
val otelSnapshotVersion = "2.21.0"
3232
val otelAlphaVersion = if (!testSnapshots) "$otelVersion-alpha" else "$otelSnapshotVersion-alpha-SNAPSHOT"
3333
val otelJavaAgentVersion = if (!testSnapshots) otelVersion else "$otelSnapshotVersion-SNAPSHOT"
3434
// All versions below are only used in testing and do not affect the released artifact.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts
2-
index d186406..91b9386 100644
2+
index 6ca4ff5..97e211a 100644
33
--- a/dependencyManagement/build.gradle.kts
44
+++ b/dependencyManagement/build.gradle.kts
55
@@ -27,7 +27,7 @@ data class DependencySet(val group: String, val version: String, val modules: Li
66
val testSnapshots = rootProject.findProperty("testUpstreamSnapshots") == "true"
77

88
// This is the version of the upstream instrumentation BOM
9-
-val otelVersion = "2.18.1-adot1"
10-
+val otelVersion = "2.18.1-adot-lambda1"
11-
val otelSnapshotVersion = "2.19.0"
9+
-val otelVersion = "2.20.1-adot1"
10+
+val otelVersion = "2.20.1-adot-lambda1"
11+
val otelSnapshotVersion = "2.21.0"
1212
val otelAlphaVersion = if (!testSnapshots) "$otelVersion-alpha" else "$otelSnapshotVersion-alpha-SNAPSHOT"
1313
val otelJavaAgentVersion = if (!testSnapshots) otelVersion else "$otelSnapshotVersion-SNAPSHOT"

lambda-layer/patches/opentelemetry-java-instrumentation.patch

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -636,52 +636,53 @@ index 0000000000..4b0f354769
636636
+ }
637637
+}
638638
diff --git a/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java b/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java
639-
index e059250807..1fa80c3735 100644
639+
index 8be416cb29..9ca5fbe1d0 100644
640640
--- a/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java
641641
+++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java
642642
@@ -70,7 +70,7 @@ public class AwsLambdaRequestHandlerInstrumentation implements TypeInstrumentati
643643
}
644644
input = AwsLambdaRequest.create(context, arg, headers);
645645
io.opentelemetry.context.Context parentContext =
646-
- AwsLambdaInstrumentationHelper.functionInstrumenter().extract(input);
647-
+ AwsLambdaInstrumentationHelper.functionInstrumenter().extract(input, context);
646+
- AwsLambdaSingletons.functionInstrumenter().extract(input);
647+
+ AwsLambdaSingletons.functionInstrumenter().extract(input, context);
648648

649-
if (!AwsLambdaInstrumentationHelper.functionInstrumenter()
650-
.shouldStart(parentContext, input)) {
649+
if (!AwsLambdaSingletons.functionInstrumenter().shouldStart(parentContext, input)) {
650+
return;
651651
diff --git a/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestStreamHandlerInstrumentation.java b/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestStreamHandlerInstrumentation.java
652-
index fb5971016a..d31389e1c4 100644
652+
index 6219a2818b..2bb3072c88 100644
653653
--- a/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestStreamHandlerInstrumentation.java
654654
+++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestStreamHandlerInstrumentation.java
655655
@@ -62,7 +62,7 @@ public class AwsLambdaRequestStreamHandlerInstrumentation implements TypeInstrum
656656
Map<String, String> headers = Collections.emptyMap();
657657
otelInput = AwsLambdaRequest.create(context, input, headers);
658658
io.opentelemetry.context.Context parentContext =
659-
- AwsLambdaInstrumentationHelper.functionInstrumenter().extract(otelInput);
660-
+ AwsLambdaInstrumentationHelper.functionInstrumenter().extract(otelInput, context);
659+
- AwsLambdaSingletons.functionInstrumenter().extract(otelInput);
660+
+ AwsLambdaSingletons.functionInstrumenter().extract(otelInput, context);
661661

662-
if (!AwsLambdaInstrumentationHelper.functionInstrumenter()
663-
.shouldStart(parentContext, otelInput)) {
664-
diff --git a/instrumentation/aws-lambda/aws-lambda-events-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java b/instrumentation/aws-lambda/aws-lambda-events-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
665-
index 4cd11fc0c4..7b7d62755c 100644
666-
--- a/instrumentation/aws-lambda/aws-lambda-events-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
667-
+++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
668-
@@ -34,7 +34,6 @@ public final class AwsLambdaSqsInstrumenterFactory {
669-
"io.opentelemetry.aws-lambda-events-2.2",
670-
message -> message.getEventSource() + " process")
662+
if (!AwsLambdaSingletons.functionInstrumenter().shouldStart(parentContext, otelInput)) {
663+
return;
664+
diff --git a/instrumentation/aws-lambda/aws-lambda-events-common-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/common/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java b/instrumentation/aws-lambda/aws-lambda-events-common-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/common/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
665+
index e4ce0be1a9..42885201c4 100644
666+
--- a/instrumentation/aws-lambda/aws-lambda-events-common-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/common/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
667+
+++ b/instrumentation/aws-lambda/aws-lambda-events-common-2.2/library/src/main/java/io/opentelemetry/instrumentation/awslambdaevents/common/v2_2/internal/AwsLambdaSqsInstrumenterFactory.java
668+
@@ -32,7 +32,6 @@ public final class AwsLambdaSqsInstrumenterFactory {
669+
return Instrumenter.<SQSMessage, Void>builder(
670+
openTelemetry, instrumentationName, message -> message.getEventSource() + " process")
671671
.addAttributesExtractor(new SqsMessageAttributesExtractor())
672672
- .addSpanLinksExtractor(new SqsMessageSpanLinksExtractor())
673673
.buildInstrumenter(SpanKindExtractor.alwaysConsumer());
674674
}
675-
675+
676676
diff --git a/version.gradle.kts b/version.gradle.kts
677-
index ec9690086c..b267166804 100644
677+
index 5e7f1c6775..8aefb73b5d 100644
678678
--- a/version.gradle.kts
679679
+++ b/version.gradle.kts
680680
@@ -1,5 +1,5 @@
681-
-val stableVersion = "2.18.1-adot1"
682-
-val alphaVersion = "2.18.1-adot1-alpha"
683-
+val stableVersion = "2.18.1-adot-lambda1"
684-
+val alphaVersion = "2.18.1-adot-lambda1-alpha"
681+
-val stableVersion = "2.20.1-adot1"
682+
-val alphaVersion = "2.20.1-adot1-alpha"
683+
+val stableVersion = "2.20.1-adot-lambda1"
684+
+val alphaVersion = "2.20.1-adot-lambda1-alpha"
685685

686686
allprojects {
687687
if (findProperty("otel.stable") != "true") {
688+

version.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* permissions and limitations under the License.
1414
*/
1515

16-
val adotVersion = "2.18.0-SNAPSHOT"
16+
val adotVersion = "2.20.0-SNAPSHOT"
1717

1818
allprojects {
1919
version = if (project.hasProperty("release.version")) {

0 commit comments

Comments
 (0)