From 518cc92918e33e3338136030bbe7b3d0abf307fb Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Wed, 27 Nov 2024 21:41:17 +0000 Subject: [PATCH 1/6] Upgrade to latest otel V1.x. --- ...emetry-java-instrumentation-invalid.patch} | 0 .github/workflows/codeql-analysis.yml | 2 +- .../docker-build-smoke-tests-fake-backend.yml | 2 +- .../e2e-tests-app-with-java-agent.yml | 8 +- .github/workflows/e2e-tests-with-operator.yml | 2 +- .github/workflows/main-build.yml | 6 +- .../nightly-upstream-snapshot-build.yml | 4 +- .github/workflows/owasp.yml | 2 +- .github/workflows/patch-release-build.yml | 2 +- .github/workflows/pr-build.yml | 4 +- .github/workflows/release-build.yml | 2 +- .../test/awssdk/v1/AwsSdkV1Test.java | 118 ++++++++--------- .../test/awssdk/v2/AwsSdkV2Test.java | 123 +++++++++--------- awsagentprovider/build.gradle.kts | 4 +- .../javaagent/providers/UdpExporterTest.java | 2 + dependencyManagement/build.gradle.kts | 9 +- 16 files changed, 147 insertions(+), 143 deletions(-) rename .github/patches/{opentelemetry-java-instrumentation.patch => opentelemetry-java-instrumentation-invalid.patch} (100%) diff --git a/.github/patches/opentelemetry-java-instrumentation.patch b/.github/patches/opentelemetry-java-instrumentation-invalid.patch similarity index 100% rename from .github/patches/opentelemetry-java-instrumentation.patch rename to .github/patches/opentelemetry-java-instrumentation-invalid.patch diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 024cef746b..6fdbea53fb 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin - name: Cache local Maven repository diff --git a/.github/workflows/docker-build-smoke-tests-fake-backend.yml b/.github/workflows/docker-build-smoke-tests-fake-backend.yml index 5cd5f2956c..b9b04543c6 100644 --- a/.github/workflows/docker-build-smoke-tests-fake-backend.yml +++ b/.github/workflows/docker-build-smoke-tests-fake-backend.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 - name: Configure AWS Credentials diff --git a/.github/workflows/e2e-tests-app-with-java-agent.yml b/.github/workflows/e2e-tests-app-with-java-agent.yml index b2c4d744bf..d8e5956646 100644 --- a/.github/workflows/e2e-tests-app-with-java-agent.yml +++ b/.github/workflows/e2e-tests-app-with-java-agent.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin # cache local patch outputs @@ -83,7 +83,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -114,7 +114,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -145,7 +145,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/e2e-tests-with-operator.yml b/.github/workflows/e2e-tests-with-operator.yml index ffacf0c74c..461757f21c 100644 --- a/.github/workflows/e2e-tests-with-operator.yml +++ b/.github/workflows/e2e-tests-with-operator.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin # cache local patch outputs diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 8248c3d26f..d047bba4f3 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin # vaadin 14 tests fail with node 18 - name: Set up Node @@ -59,7 +59,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin # cache local patch outputs @@ -194,7 +194,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/nightly-upstream-snapshot-build.yml b/.github/workflows/nightly-upstream-snapshot-build.yml index ec7c607354..2f86e91a7e 100644 --- a/.github/workflows/nightly-upstream-snapshot-build.yml +++ b/.github/workflows/nightly-upstream-snapshot-build.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 @@ -120,7 +120,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/owasp.yml b/.github/workflows/owasp.yml index fc7a030473..ce48e9fdfd 100644 --- a/.github/workflows/owasp.yml +++ b/.github/workflows/owasp.yml @@ -31,7 +31,7 @@ jobs: - name: Set up Java for dependency scan uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Configure AWS credentials for dependency scan diff --git a/.github/workflows/patch-release-build.yml b/.github/workflows/patch-release-build.yml index c56255204e..f508a861b0 100644 --- a/.github/workflows/patch-release-build.yml +++ b/.github/workflows/patch-release-build.yml @@ -63,7 +63,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index 38989dc65c..f17166ae08 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin # vaadin 14 tests fail with node 18 - name: Set up Node @@ -58,7 +58,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 5ddb016af7..e74eaf6a92 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java index fa5a586c5d..1c54ac1dcb 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java @@ -201,63 +201,63 @@ void testKinesisFault() throws Exception { doTestKinesisFault(); } - @Test - void testBedrockAgentGetKnowledgeBaseId() { - doTestBedrockAgentKnowledgeBaseId(); - } - - @Test - void testBedrockAgentAgentId() { - doTestBedrockAgentAgentId(); - } - - @Test - void testBedrockAgentDataSourceId() { - doTestBedrockAgentDataSourceId(); - } - - @Test - void testBedrockRuntimeAmazonTitan() { - doTestBedrockRuntimeAmazonTitan(); - } - - @Test - void testBedrockRuntimeAi21Jamba() { - doTestBedrockRuntimeAi21Jamba(); - } - - @Test - void testBedrockRuntimeAnthropicClaude() { - doTestBedrockRuntimeAnthropicClaude(); - } - - @Test - void testBedrockRuntimeCohereCommandR() { - doTestBedrockRuntimeCohereCommandR(); - } - - @Test - void testBedrockRuntimeMetaLlama() { - doTestBedrockRuntimeMetaLlama(); - } - - @Test - void testBedrockRuntimeMistral() { - doTestBedrockRuntimeMistral(); - } - - @Test - void testBedrockGuardrailId() { - doTestBedrockGuardrailId(); - } - - @Test - void testBedrockAgentRuntimeAgentId() { - doTestBedrockAgentRuntimeAgentId(); - } - - @Test - void testBedrockAgentRuntimeKnowledgeBaseId() { - doTestBedrockAgentRuntimeKnowledgeBaseId(); - } + // @Test + // void testBedrockAgentGetKnowledgeBaseId() { + // doTestBedrockAgentKnowledgeBaseId(); + // } + // + // @Test + // void testBedrockAgentAgentId() { + // doTestBedrockAgentAgentId(); + // } + // + // @Test + // void testBedrockAgentDataSourceId() { + // doTestBedrockAgentDataSourceId(); + // } + // + // @Test + // void testBedrockRuntimeAmazonTitan() { + // doTestBedrockRuntimeAmazonTitan(); + // } + // + // @Test + // void testBedrockRuntimeAi21Jamba() { + // doTestBedrockRuntimeAi21Jamba(); + // } + // + // @Test + // void testBedrockRuntimeAnthropicClaude() { + // doTestBedrockRuntimeAnthropicClaude(); + // } + // + // @Test + // void testBedrockRuntimeCohereCommandR() { + // doTestBedrockRuntimeCohereCommandR(); + // } + // + // @Test + // void testBedrockRuntimeMetaLlama() { + // doTestBedrockRuntimeMetaLlama(); + // } + // + // @Test + // void testBedrockRuntimeMistral() { + // doTestBedrockRuntimeMistral(); + // } + // + // @Test + // void testBedrockGuardrailId() { + // doTestBedrockGuardrailId(); + // } + // + // @Test + // void testBedrockAgentRuntimeAgentId() { + // doTestBedrockAgentRuntimeAgentId(); + // } + // + // @Test + // void testBedrockAgentRuntimeKnowledgeBaseId() { + // doTestBedrockAgentRuntimeKnowledgeBaseId(); + // } } diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java index 46c6b7e425..774e6836d1 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java @@ -204,65 +204,66 @@ void testKinesisFault() throws Exception { doTestKinesisFault(); } - @Test - void testBedrockAgentGetKnowlesgeBaseId() { - doTestBedrockAgentKnowledgeBaseId(); - } - - @Test - void testBedrockAgentAgentId() { - doTestBedrockAgentAgentId(); - } - - @Test - void testBedrockAgentDataSourceId() { - doTestBedrockAgentDataSourceId(); - } - - @Test - void testBedrockRuntimeAmazonTitan() { - doTestBedrockRuntimeAmazonTitan(); - } - - @Test - void testBedrockRuntimeAi21Jamba() { - doTestBedrockRuntimeAi21Jamba(); - } - - @Test - void testBedrockRuntimeAnthropicClaude() { - doTestBedrockRuntimeAnthropicClaude(); - } - - @Test - void testBedrockRuntimeCohereCommandR() { - doTestBedrockRuntimeCohereCommandR(); - } - - @Test - void testBedrockRuntimeMetaLlama() { - doTestBedrockRuntimeMetaLlama(); - } - - @Test - void testBedrockRuntimeMistral() { - doTestBedrockRuntimeMistral(); - } - - @Test - void testBedrockGuardrailId() { - doTestBedrockGuardrailId(); - } - - @Test - void testBedrockAgentRuntimeAgentId() { - doTestBedrockAgentRuntimeAgentId(); - } - - // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported in - // OTEL BedrockAgentRuntime instrumentation - @Test - void testBedrockAgentRuntimeKnowledgeBaseId() { - doTestBedrockAgentRuntimeKnowledgeBaseId(); - } + // @Test + // void testBedrockAgentGetKnowlesgeBaseId() { + // doTestBedrockAgentKnowledgeBaseId(); + // } + // + // @Test + // void testBedrockAgentAgentId() { + // doTestBedrockAgentAgentId(); + // } + // + // @Test + // void testBedrockAgentDataSourceId() { + // doTestBedrockAgentDataSourceId(); + // } + // + // @Test + // void testBedrockRuntimeAmazonTitan() { + // doTestBedrockRuntimeAmazonTitan(); + // } + // + // @Test + // void testBedrockRuntimeAi21Jamba() { + // doTestBedrockRuntimeAi21Jamba(); + // } + // + // @Test + // void testBedrockRuntimeAnthropicClaude() { + // doTestBedrockRuntimeAnthropicClaude(); + // } + // + // @Test + // void testBedrockRuntimeCohereCommandR() { + // doTestBedrockRuntimeCohereCommandR(); + // } + // + // @Test + // void testBedrockRuntimeMetaLlama() { + // doTestBedrockRuntimeMetaLlama(); + // } + // + // @Test + // void testBedrockRuntimeMistral() { + // doTestBedrockRuntimeMistral(); + // } + // + // @Test + // void testBedrockGuardrailId() { + // doTestBedrockGuardrailId(); + // } + // + // @Test + // void testBedrockAgentRuntimeAgentId() { + // doTestBedrockAgentRuntimeAgentId(); + // } + // + // // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported + // in + // // OTEL BedrockAgentRuntime instrumentation + // @Test + // void testBedrockAgentRuntimeKnowledgeBaseId() { + // doTestBedrockAgentRuntimeKnowledgeBaseId(); + // } } diff --git a/awsagentprovider/build.gradle.kts b/awsagentprovider/build.gradle.kts index e052e5eb47..3d3b76a15b 100644 --- a/awsagentprovider/build.gradle.kts +++ b/awsagentprovider/build.gradle.kts @@ -51,8 +51,8 @@ dependencies { testRuntimeOnly("io.opentelemetry:opentelemetry-exporter-otlp-common") compileOnly("com.google.code.findbugs:jsr305:3.0.2") - testImplementation("org.mockito:mockito-core:5.3.1") - testImplementation("org.mockito:mockito-junit-jupiter:5.8.0") + testImplementation("org.mockito:mockito-core:5.14.2") + testImplementation("org.mockito:mockito-junit-jupiter:5.14.2") } tasks { diff --git a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/UdpExporterTest.java b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/UdpExporterTest.java index 1494b30c98..2a1cea7106 100644 --- a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/UdpExporterTest.java +++ b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/UdpExporterTest.java @@ -129,7 +129,9 @@ private SpanData buildSpanDataMock() { when(mockSpanData.getParentSpanContext()).thenReturn(parentSpanContextMock); SpanContext spanContextMock = mock(SpanContext.class); + TraceFlags spanContextTraceFlagsMock = mock(TraceFlags.class); when(spanContextMock.isValid()).thenReturn(true); + when(spanContextMock.getTraceFlags()).thenReturn(spanContextTraceFlagsMock); when(mockSpanData.getSpanContext()).thenReturn(spanContextMock); TraceState traceState = TraceState.builder().build(); diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 590ea7f35f..64008c1fa8 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -27,8 +27,8 @@ data class DependencySet(val group: String, val version: String, val modules: Li val TEST_SNAPSHOTS = rootProject.findProperty("testUpstreamSnapshots") == "true" // This is the version of the upstream instrumentation BOM -val otelVersion = "1.32.1-adot2" -val otelSnapshotVersion = "1.33.0" +val otelVersion = "1.33.6" +val otelSnapshotVersion = "1.33.6" val otelAlphaVersion = if (!TEST_SNAPSHOTS) "$otelVersion-alpha" else "$otelSnapshotVersion-alpha-SNAPSHOT" val otelJavaAgentVersion = if (!TEST_SNAPSHOTS) otelVersion else "$otelSnapshotVersion-SNAPSHOT" // All versions below are only used in testing and do not affect the released artifact. @@ -73,10 +73,11 @@ val DEPENDENCIES = listOf( "commons-logging:commons-logging:1.2", "com.sparkjava:spark-core:2.9.4", "com.squareup.okhttp3:okhttp:4.12.0", - "io.opentelemetry.contrib:opentelemetry-aws-xray:1.32.0", - "io.opentelemetry.contrib:opentelemetry-aws-resources:1.32.0-alpha", + "io.opentelemetry.contrib:opentelemetry-aws-xray:1.39.0", + "io.opentelemetry.contrib:opentelemetry-aws-resources:1.39.0-alpha", "io.opentelemetry.proto:opentelemetry-proto:1.0.0-alpha", "io.opentelemetry.javaagent:opentelemetry-javaagent:$otelJavaAgentVersion", + "io.opentelemetry:opentelemetry-extension-aws:1.20.1", "net.bytebuddy:byte-buddy:1.14.10", ) From ec570923950163a03761b7e6d50ad22708cc34f7 Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Wed, 27 Nov 2024 23:30:51 +0000 Subject: [PATCH 2/6] Apply patch on 1.33.6. --- ... opentelemetry-java-instrumentation.patch} | 409 +++++++++--------- .github/patches/versions | 2 +- .../test/awssdk/v1/AwsSdkV1Test.java | 118 ++--- .../test/awssdk/v2/AwsSdkV2Test.java | 124 +++--- dependencyManagement/build.gradle.kts | 2 +- 5 files changed, 334 insertions(+), 321 deletions(-) rename .github/patches/{opentelemetry-java-instrumentation-invalid.patch => opentelemetry-java-instrumentation.patch} (91%) diff --git a/.github/patches/opentelemetry-java-instrumentation-invalid.patch b/.github/patches/opentelemetry-java-instrumentation.patch similarity index 91% rename from .github/patches/opentelemetry-java-instrumentation-invalid.patch rename to .github/patches/opentelemetry-java-instrumentation.patch index 45e804a057..c44e002a2a 100644 --- a/.github/patches/opentelemetry-java-instrumentation-invalid.patch +++ b/.github/patches/opentelemetry-java-instrumentation.patch @@ -250,23 +250,28 @@ index 0000000000..e890cb3c0f + } +} diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsExperimentalAttributes.java b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsExperimentalAttributes.java -index 3e8fddec5c..8f86a67b39 100644 +index 3e8fddec5c..6c8e476c0a 100644 --- a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsExperimentalAttributes.java +++ b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsExperimentalAttributes.java -@@ -18,6 +18,49 @@ final class AwsExperimentalAttributes { - static final AttributeKey AWS_STREAM_NAME = stringKey("aws.stream.name"); +@@ -19,5 +19,54 @@ final class AwsExperimentalAttributes { static final AttributeKey AWS_TABLE_NAME = stringKey("aws.table.name"); static final AttributeKey AWS_REQUEST_ID = stringKey("aws.requestId"); + + static final AttributeKey AWS_AGENT_ID = stringKey("aws.bedrock.agent.id"); ++ + static final AttributeKey AWS_KNOWLEDGE_BASE_ID = + stringKey("aws.bedrock.knowledge_base.id"); ++ + static final AttributeKey AWS_DATA_SOURCE_ID = stringKey("aws.bedrock.data_source.id"); ++ + static final AttributeKey AWS_GUARDRAIL_ID = stringKey("aws.bedrock.guardrail.id"); ++ + static final AttributeKey AWS_GUARDRAIL_ARN = stringKey("aws.bedrock.guardrail.arn"); + + // TODO: Merge in gen_ai attributes in opentelemetry-semconv-incubating once upgrade to v1.26.0 + static final AttributeKey AWS_BEDROCK_RUNTIME_MODEL_ID = + stringKey("gen_ai.request.model"); ++ + static final AttributeKey AWS_BEDROCK_SYSTEM = stringKey("gen_ai.system"); + + static final AttributeKey GEN_AI_REQUEST_MAX_TOKENS = @@ -300,11 +305,11 @@ index 3e8fddec5c..8f86a67b39 100644 + + static final AttributeKey AWS_LAMBDA_RESOURCE_ID = + stringKey("aws.lambda.resource_mapping.id"); - ++ private AwsExperimentalAttributes() {} } diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkExperimentalAttributesExtractor.java b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkExperimentalAttributesExtractor.java -index 245f09a5d8..aef7936980 100644 +index 245f09a5d8..282e045b83 100644 --- a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkExperimentalAttributesExtractor.java +++ b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkExperimentalAttributesExtractor.java @@ -6,13 +6,31 @@ @@ -357,7 +362,7 @@ index 245f09a5d8..aef7936980 100644 @Override public void onStart(AttributesBuilder attributes, Context parentContext, Request request) { -@@ -34,21 +57,30 @@ class AwsSdkExperimentalAttributesExtractor +@@ -34,21 +57,29 @@ class AwsSdkExperimentalAttributesExtractor attributes.put(AWS_ENDPOINT, request.getEndpoint().toString()); Object originalRequest = request.getOriginalRequest(); @@ -367,6 +372,15 @@ index 245f09a5d8..aef7936980 100644 - setRequestAttribute(attributes, AWS_STREAM_NAME, originalRequest, RequestAccess::getStreamName); - setRequestAttribute(attributes, AWS_TABLE_NAME, originalRequest, RequestAccess::getTableName); - } +- +- private static void setRequestAttribute( +- AttributesBuilder attributes, +- AttributeKey key, +- Object request, +- Function getter) { +- String value = getter.apply(request); +- if (value != null) { +- attributes.put(key, value); + String requestClassName = originalRequest.getClass().getSimpleName(); + setAttribute(attributes, AWS_BUCKET_NAME, originalRequest, RequestAccess::getBucketName); + setAttribute(attributes, AWS_QUEUE_URL, originalRequest, RequestAccess::getQueueUrl); @@ -385,15 +399,6 @@ index 245f09a5d8..aef7936980 100644 + setAttribute(attributes, AWS_LAMBDA_NAME, originalRequest, RequestAccess::getLambdaName); + setAttribute( + attributes, AWS_LAMBDA_RESOURCE_ID, originalRequest, RequestAccess::getLambdaResourceId); - -- private static void setRequestAttribute( -- AttributesBuilder attributes, -- AttributeKey key, -- Object request, -- Function getter) { -- String value = getter.apply(request); -- if (value != null) { -- attributes.put(key, value); + // Get serviceName defined in the AWS Java SDK V1 Request class. + String serviceName = request.getServiceName(); + // Extract request attributes only for Bedrock services. @@ -402,7 +407,7 @@ index 245f09a5d8..aef7936980 100644 } } -@@ -59,12 +91,136 @@ class AwsSdkExperimentalAttributesExtractor +@@ -59,12 +90,136 @@ class AwsSdkExperimentalAttributesExtractor Request request, @Nullable Response response, @Nullable Throwable error) { @@ -427,15 +432,15 @@ index 245f09a5d8..aef7936980 100644 + if (requestId != null) { + attributes.put(AWS_REQUEST_ID, requestId); + } - } ++ } + // Get serviceName defined in the AWS Java SDK V1 Request class. + String serviceName = request.getServiceName(); + // Extract response attributes for Bedrock services + if (awsResp != null && isBedrockService(serviceName)) { + bedrockOnEnd(attributes, awsResp, serviceName); -+ } -+ } -+ } + } + } + } + + private static void bedrockOnStart( + AttributesBuilder attributes, @@ -541,8 +546,8 @@ index 245f09a5d8..aef7936980 100644 + String value = getter.apply(request); + if (value != null) { + attributes.put(key, value); - } - } ++ } ++ } } diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java index bb2ae9266c..512d5345cc 100644 @@ -1042,7 +1047,7 @@ index 548631e9f1..51483839a7 100644 // needed for SQS - using emq directly as localstack references emq v0.15.7 ie WITHOUT AWS trace header propagation implementation("org.elasticmq:elasticmq-rest-sqs_2.12:1.0.0") diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/AbstractAws1ClientTest.groovy b/instrumentation/aws-sdk/aws-sdk-1.11/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/AbstractAws1ClientTest.groovy -index 95e6ed8985..990fc177bc 100644 +index 95e6ed8985..8a387e8d31 100644 --- a/instrumentation/aws-sdk/aws-sdk-1.11/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/AbstractAws1ClientTest.groovy +++ b/instrumentation/aws-sdk/aws-sdk-1.11/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v1_11/AbstractAws1ClientTest.groovy @@ -27,6 +27,24 @@ import com.amazonaws.services.rds.AmazonRDSClientBuilder @@ -1083,7 +1088,7 @@ index 95e6ed8985..990fc177bc 100644 """ + "Bedrock" | "GetGuardrail" | "GET" | "/" | -+ AmazonBedrockClientBuilder.standard() | { c -> c.getGuardrail(new GetGuardrailRequest().withGuardrailIdentifier("guardrailId")) } | ["aws.bedrock.guardrail.id":"guardrailId", "aws.bedrock.guardrail.arn": "guardrailArn"] | """ ++ AmazonBedrockClientBuilder.standard() | { c -> c.getGuardrail(new GetGuardrailRequest().withGuardrailIdentifier("guardrailId")) } | ["aws.bedrock.guardrail.id":"guardrailId", "aws.bedrock.guardrail.arn": "guardrailArn"] | """ + { + "blockedInputMessaging": "string", + "blockedOutputsMessaging": "string", @@ -1115,12 +1120,12 @@ index 95e6ed8985..990fc177bc 100644 + "AWSBedrockAgent" | "GetKnowledgeBase" | "GET" | "/" | AWSBedrockAgentClientBuilder.standard() | { c -> c.getKnowledgeBase(new GetKnowledgeBaseRequest().withKnowledgeBaseId("knowledgeBaseId")) } | ["aws.bedrock.knowledge_base.id": "knowledgeBaseId"] | "" + "AWSBedrockAgent" | "GetDataSource" | "GET" | "/" | AWSBedrockAgentClientBuilder.standard() | { c -> c.getDataSource(new GetDataSourceRequest().withDataSourceId("datasourceId").withKnowledgeBaseId("knowledgeBaseId")) } | ["aws.bedrock.data_source.id": "datasourceId"] | "" + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("ai21.jamba-1-5-mini-v1:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("ai21.jamba-1-5-mini-v1:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "messages": [{ + "role": "user", @@ -1131,19 +1136,19 @@ index 95e6ed8985..990fc177bc 100644 + "temperature": 0.7 + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "ai21.jamba-1-5-mini-v1:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "1000", -+ "gen_ai.request.temperature": "0.7", -+ "gen_ai.request.top_p": "0.8", -+ "gen_ai.response.finish_reasons": "[stop]", -+ "gen_ai.usage.input_tokens": "5", -+ "gen_ai.usage.output_tokens": "42" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "ai21.jamba-1-5-mini-v1:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "1000", ++ "gen_ai.request.temperature": "0.7", ++ "gen_ai.request.top_p": "0.8", ++ "gen_ai.response.finish_reasons": "[stop]", ++ "gen_ai.usage.input_tokens": "5", ++ "gen_ai.usage.output_tokens": "42" ++ ] | ++ ''' + { + "choices": [{ + "finish_reason": "stop" @@ -1155,12 +1160,12 @@ index 95e6ed8985..990fc177bc 100644 + } + ''' + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("amazon.titan-text-premier-v1:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("amazon.titan-text-premier-v1:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "inputText": "Hello, world!", + "textGenerationConfig": { @@ -1171,19 +1176,19 @@ index 95e6ed8985..990fc177bc 100644 + } + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "amazon.titan-text-premier-v1:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "100", -+ "gen_ai.request.temperature": "0.7", -+ "gen_ai.request.top_p": "0.9", -+ "gen_ai.response.finish_reasons": "[stop]", -+ "gen_ai.usage.input_tokens": "5", -+ "gen_ai.usage.output_tokens": "42" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "amazon.titan-text-premier-v1:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "100", ++ "gen_ai.request.temperature": "0.7", ++ "gen_ai.request.top_p": "0.9", ++ "gen_ai.response.finish_reasons": "[stop]", ++ "gen_ai.usage.input_tokens": "5", ++ "gen_ai.usage.output_tokens": "42" ++ ] | ++ ''' + { + "inputTextTokenCount": 5, + "results": [ @@ -1196,12 +1201,12 @@ index 95e6ed8985..990fc177bc 100644 + } + ''' + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("anthropic.claude-3-5-sonnet-20241022-v2:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("anthropic.claude-3-5-sonnet-20241022-v2:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "anthropic_version": "bedrock-2023-05-31", + "messages": [{ @@ -1213,19 +1218,19 @@ index 95e6ed8985..990fc177bc 100644 + "top_p": 0.9 + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "anthropic.claude-3-5-sonnet-20241022-v2:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "100", -+ "gen_ai.request.temperature": "0.7", -+ "gen_ai.request.top_p": "0.9", -+ "gen_ai.response.finish_reasons": "[end_turn]", -+ "gen_ai.usage.input_tokens": "2095", -+ "gen_ai.usage.output_tokens": "503" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "anthropic.claude-3-5-sonnet-20241022-v2:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "100", ++ "gen_ai.request.temperature": "0.7", ++ "gen_ai.request.top_p": "0.9", ++ "gen_ai.response.finish_reasons": "[end_turn]", ++ "gen_ai.usage.input_tokens": "2095", ++ "gen_ai.usage.output_tokens": "503" ++ ] | ++ ''' + { + "stop_reason": "end_turn", + "usage": { @@ -1235,12 +1240,12 @@ index 95e6ed8985..990fc177bc 100644 + } + ''' + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("meta.llama3-70b-instruct-v1:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("meta.llama3-70b-instruct-v1:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "prompt": "<|begin_of_text|><|start_header_id|>user<|end_header_id|>\\\\nDescribe the purpose of a 'hello world' program in one line. <|eot_id|>\\\\n<|start_header_id|>assistant<|end_header_id|>\\\\n", + "max_gen_len": 128, @@ -1248,19 +1253,19 @@ index 95e6ed8985..990fc177bc 100644 + "top_p": 0.9 + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "meta.llama3-70b-instruct-v1:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "128", -+ "gen_ai.request.temperature": "0.1", -+ "gen_ai.request.top_p": "0.9", -+ "gen_ai.response.finish_reasons": "[stop]", -+ "gen_ai.usage.input_tokens": "2095", -+ "gen_ai.usage.output_tokens": "503" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "meta.llama3-70b-instruct-v1:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "128", ++ "gen_ai.request.temperature": "0.1", ++ "gen_ai.request.top_p": "0.9", ++ "gen_ai.response.finish_reasons": "[stop]", ++ "gen_ai.usage.input_tokens": "2095", ++ "gen_ai.usage.output_tokens": "503" ++ ] | ++ ''' + { + "prompt_token_count": 2095, + "generation_token_count": 503, @@ -1268,12 +1273,12 @@ index 95e6ed8985..990fc177bc 100644 + } + ''' + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("cohere.command-r-v1:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("cohere.command-r-v1:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "message": "Convince me to write a LISP interpreter in one line.", + "temperature": 0.8, @@ -1281,31 +1286,31 @@ index 95e6ed8985..990fc177bc 100644 + "p": 0.45 + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "cohere.command-r-v1:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "4096", -+ "gen_ai.request.temperature": "0.8", -+ "gen_ai.request.top_p": "0.45", -+ "gen_ai.response.finish_reasons": "[COMPLETE]", -+ "gen_ai.usage.input_tokens": "9", -+ "gen_ai.usage.output_tokens": "2" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "cohere.command-r-v1:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "4096", ++ "gen_ai.request.temperature": "0.8", ++ "gen_ai.request.top_p": "0.45", ++ "gen_ai.response.finish_reasons": "[COMPLETE]", ++ "gen_ai.usage.input_tokens": "9", ++ "gen_ai.usage.output_tokens": "2" ++ ] | ++ ''' + { + "text": "test-output", + "finish_reason": "COMPLETE" + } + ''' + "BedrockRuntime" | "InvokeModel" | "POST" | "/" | -+ AmazonBedrockRuntimeClientBuilder.standard() | -+ { c -> -+ c.invokeModel( -+ new InvokeModelRequest() -+ .withModelId("mistral.mistral-large-2402-v1:0") -+ .withBody(StandardCharsets.UTF_8.encode(''' ++ AmazonBedrockRuntimeClientBuilder.standard() | ++ { c -> ++ c.invokeModel( ++ new InvokeModelRequest() ++ .withModelId("mistral.mistral-large-2402-v1:0") ++ .withBody(StandardCharsets.UTF_8.encode(''' + { + "prompt": "[INST] Describe the difference between a compiler and interpreter in one line. [/INST]\\\\n", + "max_tokens": 4096, @@ -1313,19 +1318,19 @@ index 95e6ed8985..990fc177bc 100644 + "top_p": 0.25 + } + ''')) -+ ) -+ } | -+ [ -+ "gen_ai.request.model": "mistral.mistral-large-2402-v1:0", -+ "gen_ai.system": "aws_bedrock", -+ "gen_ai.request.max_tokens": "4096", -+ "gen_ai.request.temperature": "0.75", -+ "gen_ai.request.top_p": "0.25", -+ "gen_ai.response.finish_reasons": "[stop]", -+ "gen_ai.usage.input_tokens": "16", -+ "gen_ai.usage.output_tokens": "2" -+ ] | -+ ''' ++ ) ++ } | ++ [ ++ "gen_ai.request.model": "mistral.mistral-large-2402-v1:0", ++ "gen_ai.system": "aws_bedrock", ++ "gen_ai.request.max_tokens": "4096", ++ "gen_ai.request.temperature": "0.75", ++ "gen_ai.request.top_p": "0.25", ++ "gen_ai.response.finish_reasons": "[stop]", ++ "gen_ai.usage.input_tokens": "16", ++ "gen_ai.usage.output_tokens": "2" ++ ] | ++ ''' + { + "outputs": [{ + "text": "test-output", @@ -1334,17 +1339,17 @@ index 95e6ed8985..990fc177bc 100644 + } + ''' + "AWSStepFunctions" | "DescribeStateMachine" | "POST" | "/" | AWSStepFunctionsClientBuilder.standard() -+ | { c -> c.describeStateMachine(new DescribeStateMachineRequest().withStateMachineArn("stateMachineArn")) } -+ | ["aws.stepfunctions.state_machine.arn": "stateMachineArn"] -+ | "" ++ | { c -> c.describeStateMachine(new DescribeStateMachineRequest().withStateMachineArn("stateMachineArn")) } ++ | ["aws.stepfunctions.state_machine.arn": "stateMachineArn"] ++ | "" + "AWSStepFunctions" | "DescribeActivity" | "POST" | "/" | AWSStepFunctionsClientBuilder.standard() -+ | { c -> c.describeActivity(new DescribeActivityRequest().withActivityArn("activityArn")) } -+ | ["aws.stepfunctions.activity.arn": "activityArn"] -+ | "" ++ | { c -> c.describeActivity(new DescribeActivityRequest().withActivityArn("activityArn")) } ++ | ["aws.stepfunctions.activity.arn": "activityArn"] ++ | "" + "SNS" | "Publish" | "POST" | "/" | AmazonSNSClientBuilder.standard() -+ | { c -> c.publish(new PublishRequest().withMessage("message").withTopicArn("topicArn")) } -+ | ["aws.sns.topic.arn": "topicArn"] -+ | """ ++ | { c -> c.publish(new PublishRequest().withMessage("message").withTopicArn("topicArn")) } ++ | ["aws.sns.topic.arn": "topicArn"] ++ | """ + + + 567910cd-659e-55d4-8ccb-5aaf14679dc0 @@ -1355,9 +1360,9 @@ index 95e6ed8985..990fc177bc 100644 + + """ + "AWSSecretsManager" | "CreateSecret" | "POST" | "/" | AWSSecretsManagerClientBuilder.standard() -+ | { c -> c.createSecret(new CreateSecretRequest().withName("secretName").withSecretString("secretValue")) } -+ | ["aws.secretsmanager.secret.arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3"] -+ | """ ++ | { c -> c.createSecret(new CreateSecretRequest().withName("secretName").withSecretString("secretValue")) } ++ | ["aws.secretsmanager.secret.arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3"] ++ | """ + { + "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", + "Name":"MyTestDatabaseSecret", @@ -1365,18 +1370,18 @@ index 95e6ed8985..990fc177bc 100644 + } + """ + "AWSLambda" | "GetEventSourceMapping" | "GET" | "/" | AWSLambdaClientBuilder.standard() -+ | { c -> c.getEventSourceMapping(new GetEventSourceMappingRequest().withUUID("uuid")) } -+ | ["aws.lambda.resource_mapping.id": "uuid"] -+ | "" ++ | { c -> c.getEventSourceMapping(new GetEventSourceMappingRequest().withUUID("uuid")) } ++ | ["aws.lambda.resource_mapping.id": "uuid"] ++ | "" + "AWSLambda" | "GetFunction" | "GET" | "/" | AWSLambdaClientBuilder.standard() -+ | { c-> c.getFunction(new GetFunctionRequest().withFunctionName("functionName")) } -+ | ["aws.lambda.function.name": "functionName"] -+ | "" ++ | { c-> c.getFunction(new GetFunctionRequest().withFunctionName("functionName")) } ++ | ["aws.lambda.function.name": "functionName"] ++ | "" } def "send #operation request to closed port"() { diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts -index 8f442b268b..24c14dec4e 100644 +index 3b6efbd696..9f4487d727 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts +++ b/instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts @@ -84,6 +84,9 @@ dependencies { @@ -1386,11 +1391,11 @@ index 8f442b268b..24c14dec4e 100644 + testLibrary("software.amazon.awssdk:sfn:2.2.0") + testLibrary("software.amazon.awssdk:secretsmanager:2.2.0") + testLibrary("software.amazon.awssdk:lambda:2.2.0") + } - // last version that does not use json protocol - latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17") + val latestDepTest = findProperty("testLatestDeps") as Boolean diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/build.gradle.kts -index e73abc7bc3..d387a7472c 100644 +index 6e0ea36a64..68b9c72b7d 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/build.gradle.kts +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library-autoconfigure/build.gradle.kts @@ -21,6 +21,9 @@ dependencies { @@ -1400,11 +1405,11 @@ index e73abc7bc3..d387a7472c 100644 + testLibrary("software.amazon.awssdk:sfn:2.2.0") + testLibrary("software.amazon.awssdk:secretsmanager:2.2.0") + testLibrary("software.amazon.awssdk:lambda:2.2.0") + } - // last version that does not use json protocol - latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17") + tasks { diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts -index 081d542e76..4f71a06a57 100644 +index 862df156ae..2ed33d6f03 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts @@ -19,6 +19,9 @@ dependencies { @@ -1414,9 +1419,9 @@ index 081d542e76..4f71a06a57 100644 + testLibrary("software.amazon.awssdk:sfn:2.2.0") + testLibrary("software.amazon.awssdk:secretsmanager:2.2.0") + testLibrary("software.amazon.awssdk:lambda:2.2.0") + } - // last version that does not use json protocol - latestDepTestLibrary("software.amazon.awssdk:sqs:2.21.17") + testing { diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsExperimentalAttributes.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsExperimentalAttributes.java new file mode 100644 index 0000000000..9e9f9cf59f @@ -1497,7 +1502,7 @@ index 0000000000..9e9f9cf59f + private AwsExperimentalAttributes() {} +} diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequest.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequest.java -index 54253d0f7b..5326400f7e 100644 +index 54253d0f7b..2374bd4a52 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequest.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequest.java @@ -5,10 +5,20 @@ @@ -1521,10 +1526,11 @@ index 54253d0f7b..5326400f7e 100644 import static io.opentelemetry.instrumentation.awssdk.v2_2.FieldMapping.request; import static io.opentelemetry.instrumentation.awssdk.v2_2.FieldMapping.response; -@@ -32,6 +42,49 @@ enum AwsSdkRequest { +@@ -32,6 +42,54 @@ enum AwsSdkRequest { S3Request(S3, "S3Request"), SqsRequest(SQS, "SqsRequest"), KinesisRequest(KINESIS, "KinesisRequest"), ++ + BedrockRequest(BEDROCK, "BedrockRequest"), + BedrockAgentRuntimeRequest(BEDROCKAGENTRUNTIMEOPERATION, "BedrockAgentRuntimeRequest"), + BedrockRuntimeRequest(BEDROCKRUNTIME, "BedrockRuntimeRequest"), @@ -1564,18 +1570,22 @@ index 54253d0f7b..5326400f7e 100644 + BedrockListDataSourcesRequest(BEDROCKKNOWLEDGEBASEOPERATION, "ListDataSourcesRequest"), + BedrockUpdateAgentKnowledgeBaseRequest( + BEDROCKKNOWLEDGEBASEOPERATION, "UpdateAgentKnowledgeBaseRequest"), ++ + SfnRequest(STEPFUNCTION, "SfnRequest"), ++ + SnsRequest(SNS, "SnsRequest"), ++ + SecretsManagerRequest(SECRETSMANAGER, "SecretsManagerRequest"), ++ + LambdaRequest(LAMBDA, "LambdaRequest"), // specific requests BatchGetItem( DYNAMODB, diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java -index 9062f2aa17..4cd468e095 100644 +index 9062f2aa17..aa77d8d227 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java -@@ -5,17 +5,76 @@ +@@ -5,17 +5,84 @@ package io.opentelemetry.instrumentation.awssdk.v2_2; @@ -1616,9 +1626,13 @@ index 9062f2aa17..4cd468e095 100644 - KINESIS(request("aws.stream.name", "StreamName")), - DYNAMODB(request("aws.table.name", "TableName")); + S3(request(AWS_BUCKET_NAME.getKey(), "Bucket")), ++ + SQS(request(AWS_QUEUE_URL.getKey(), "QueueUrl"), request(AWS_QUEUE_NAME.getKey(), "QueueName")), ++ + KINESIS(request(AWS_STREAM_NAME.getKey(), "StreamName")), ++ + DYNAMODB(request(AWS_TABLE_NAME.getKey(), "TableName")), ++ + BEDROCK( + request(AWS_GUARDRAIL_ID.getKey(), "guardrailIdentifier"), + response(AWS_GUARDRAIL_ARN.getKey(), "guardrailArn")), @@ -1644,11 +1658,15 @@ index 9062f2aa17..4cd468e095 100644 + response(GEN_AI_RESPONSE_FINISH_REASONS.getKey(), "body"), + response(GEN_AI_USAGE_INPUT_TOKENS.getKey(), "body"), + response(GEN_AI_USAGE_OUTPUT_TOKENS.getKey(), "body")), ++ + STEPFUNCTION( + request(AWS_STATE_MACHINE_ARN.getKey(), "stateMachineArn"), + request(AWS_STEP_FUNCTIONS_ACTIVITY_ARN.getKey(), "activityArn")), ++ + SNS(request(AWS_SNS_TOPIC_ARN.getKey(), "TopicArn")), ++ + SECRETSMANAGER(response(AWS_SECRET_ARN.getKey(), "ARN")), ++ + LAMBDA( + request(AWS_LAMBDA_NAME.getKey(), "FunctionName"), + request(AWS_LAMBDA_RESOURCE_ID.getKey(), "UUID"), @@ -1946,7 +1964,7 @@ index f717b1efc4..352b02093e 100644 @Override diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/testing/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-2.2/testing/build.gradle.kts -index 2a7f14d14b..584b8dda6c 100644 +index 9981aa9a19..1caed55e62 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/testing/build.gradle.kts +++ b/instrumentation/aws-sdk/aws-sdk-2.2/testing/build.gradle.kts @@ -19,6 +19,9 @@ dependencies { @@ -1958,12 +1976,12 @@ index 2a7f14d14b..584b8dda6c 100644 + compileOnly("software.amazon.awssdk:secretsmanager:2.2.0") // needed for SQS - using emq directly as localstack references emq v0.15.7 ie WITHOUT AWS trace header propagation - implementation("org.elasticmq:elasticmq-rest-sqs_2.12:1.0.0") + implementation("org.elasticmq:elasticmq-rest-sqs_2.13:1.5.1") diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy b/instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy -index 53390c8d85..692cd005eb 100644 +index 7c152bb91b..b30b8fa2c7 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy +++ b/instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy -@@ -33,8 +33,19 @@ import software.amazon.awssdk.services.sqs.SqsAsyncClient +@@ -35,6 +35,16 @@ import software.amazon.awssdk.services.sqs.SqsAsyncClient import software.amazon.awssdk.services.sqs.SqsClient import software.amazon.awssdk.services.sqs.model.CreateQueueRequest import software.amazon.awssdk.services.sqs.model.SendMessageRequest @@ -1979,11 +1997,8 @@ index 53390c8d85..692cd005eb 100644 +import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest import spock.lang.Unroll -+ - import java.time.Duration - import java.util.concurrent.Future - -@@ -120,7 +131,31 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest { + import java.nio.charset.StandardCharsets +@@ -144,6 +154,29 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest { "$SemanticAttributes.MESSAGING_SYSTEM" "AmazonSQS" } else if (service == "Kinesis") { "aws.stream.name" "somestream" @@ -2011,29 +2026,27 @@ index 53390c8d85..692cd005eb 100644 + } else if (service == "SecretsManager") { + "aws.secretsmanager.secret.arn" "someSecretArn" } -+ } } - } -@@ -162,6 +197,41 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest { +@@ -218,6 +251,41 @@ abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest { 0ac9cda2-bbf4-11d3-f92b-31fa5e8dbc99 """ + "Sfn" | "DescribeStateMachine" | "POST" | "UNKNOWN" | SfnClient.builder() -+ | { c -> c.describeStateMachine(DescribeStateMachineRequest.builder().stateMachineArn("stateMachineArn").build()) } -+ | "" ++ | { c -> c.describeStateMachine(DescribeStateMachineRequest.builder().stateMachineArn("stateMachineArn").build()) } ++ | "" + "Sfn" | "DescribeActivity" | "POST" | "UNKNOWN" | SfnClient.builder() -+ | { c -> c.describeActivity(DescribeActivityRequest.builder().activityArn("activityArn").build()) } -+ | "" ++ | { c -> c.describeActivity(DescribeActivityRequest.builder().activityArn("activityArn").build()) } ++ | "" + "Lambda" | "GetFunction" | "GET" | "UNKNOWN" | LambdaClient.builder() -+ | { c -> c.getFunction(GetFunctionRequest.builder().functionName("functionName").build()) } -+ | "" ++ | { c -> c.getFunction(GetFunctionRequest.builder().functionName("functionName").build()) } ++ | "" + "Lambda" | "GetEventSourceMapping" | "GET" |"UNKNOWN" | LambdaClient.builder() -+ | { c -> c.getEventSourceMapping(GetEventSourceMappingRequest.builder().uuid("sourceEventId").build()) } -+ | "" ++ | { c -> c.getEventSourceMapping(GetEventSourceMappingRequest.builder().uuid("sourceEventId").build()) } ++ | "" + "Sns" | "Publish" | "POST" | "d74b8436-ae13-5ab4-a9ff-ce54dfea72a0" | SnsClient.builder() -+ | { c -> c.publish(PublishRequest.builder().topicArn("topicArn").message("message").build()) } -+ | """ ++ | { c -> c.publish(PublishRequest.builder().topicArn("topicArn").message("message").build()) } ++ | """ + + + 567910cd-659e-55d4-8ccb-5aaf14679dc0 @@ -2044,8 +2057,8 @@ index 53390c8d85..692cd005eb 100644 + + """ + "SecretsManager" | "GetSecretValue" | "POST" | "UNKNOWN" | SecretsManagerClient.builder() -+ | { c -> c.getSecretValue(GetSecretValueRequest.builder().secretId("someSecret1").build()) } -+ | """ ++ | { c -> c.getSecretValue(GetSecretValueRequest.builder().secretId("someSecret1").build()) } ++ | """ + { + "ARN":"someSecretArn", + "CreatedDate":1.523477145713E9, @@ -2058,14 +2071,14 @@ index 53390c8d85..692cd005eb 100644 def "send #operation async request with builder #builder.class.getName() mocked response"() { diff --git a/version.gradle.kts b/version.gradle.kts -index fdf57bdbea..c38a2e00f3 100644 +index 5217d396e2..66cc8ecb2a 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -1,5 +1,5 @@ --val stableVersion = "1.32.1" --val alphaVersion = "1.32.1-alpha" -+val stableVersion = "1.32.1-adot2" -+val alphaVersion = "1.32.1-adot2-alpha" +-val stableVersion = "1.33.6" +-val alphaVersion = "1.33.6-alpha" ++val stableVersion = "1.33.6-adot1" ++val alphaVersion = "1.33.6-adot1-alpha" allprojects { if (findProperty("otel.stable") != "true") { diff --git a/.github/patches/versions b/.github/patches/versions index 5ea226511e..46fc43aaa1 100644 --- a/.github/patches/versions +++ b/.github/patches/versions @@ -1 +1 @@ -OTEL_JAVA_INSTRUMENTATION_VERSION=v1.32.1 \ No newline at end of file +OTEL_JAVA_INSTRUMENTATION_VERSION=v1.33.6 \ No newline at end of file diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java index 1c54ac1dcb..fa5a586c5d 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java @@ -201,63 +201,63 @@ void testKinesisFault() throws Exception { doTestKinesisFault(); } - // @Test - // void testBedrockAgentGetKnowledgeBaseId() { - // doTestBedrockAgentKnowledgeBaseId(); - // } - // - // @Test - // void testBedrockAgentAgentId() { - // doTestBedrockAgentAgentId(); - // } - // - // @Test - // void testBedrockAgentDataSourceId() { - // doTestBedrockAgentDataSourceId(); - // } - // - // @Test - // void testBedrockRuntimeAmazonTitan() { - // doTestBedrockRuntimeAmazonTitan(); - // } - // - // @Test - // void testBedrockRuntimeAi21Jamba() { - // doTestBedrockRuntimeAi21Jamba(); - // } - // - // @Test - // void testBedrockRuntimeAnthropicClaude() { - // doTestBedrockRuntimeAnthropicClaude(); - // } - // - // @Test - // void testBedrockRuntimeCohereCommandR() { - // doTestBedrockRuntimeCohereCommandR(); - // } - // - // @Test - // void testBedrockRuntimeMetaLlama() { - // doTestBedrockRuntimeMetaLlama(); - // } - // - // @Test - // void testBedrockRuntimeMistral() { - // doTestBedrockRuntimeMistral(); - // } - // - // @Test - // void testBedrockGuardrailId() { - // doTestBedrockGuardrailId(); - // } - // - // @Test - // void testBedrockAgentRuntimeAgentId() { - // doTestBedrockAgentRuntimeAgentId(); - // } - // - // @Test - // void testBedrockAgentRuntimeKnowledgeBaseId() { - // doTestBedrockAgentRuntimeKnowledgeBaseId(); - // } + @Test + void testBedrockAgentGetKnowledgeBaseId() { + doTestBedrockAgentKnowledgeBaseId(); + } + + @Test + void testBedrockAgentAgentId() { + doTestBedrockAgentAgentId(); + } + + @Test + void testBedrockAgentDataSourceId() { + doTestBedrockAgentDataSourceId(); + } + + @Test + void testBedrockRuntimeAmazonTitan() { + doTestBedrockRuntimeAmazonTitan(); + } + + @Test + void testBedrockRuntimeAi21Jamba() { + doTestBedrockRuntimeAi21Jamba(); + } + + @Test + void testBedrockRuntimeAnthropicClaude() { + doTestBedrockRuntimeAnthropicClaude(); + } + + @Test + void testBedrockRuntimeCohereCommandR() { + doTestBedrockRuntimeCohereCommandR(); + } + + @Test + void testBedrockRuntimeMetaLlama() { + doTestBedrockRuntimeMetaLlama(); + } + + @Test + void testBedrockRuntimeMistral() { + doTestBedrockRuntimeMistral(); + } + + @Test + void testBedrockGuardrailId() { + doTestBedrockGuardrailId(); + } + + @Test + void testBedrockAgentRuntimeAgentId() { + doTestBedrockAgentRuntimeAgentId(); + } + + @Test + void testBedrockAgentRuntimeKnowledgeBaseId() { + doTestBedrockAgentRuntimeKnowledgeBaseId(); + } } diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java index 774e6836d1..1e097d9379 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java @@ -204,66 +204,66 @@ void testKinesisFault() throws Exception { doTestKinesisFault(); } - // @Test - // void testBedrockAgentGetKnowlesgeBaseId() { - // doTestBedrockAgentKnowledgeBaseId(); - // } - // - // @Test - // void testBedrockAgentAgentId() { - // doTestBedrockAgentAgentId(); - // } - // - // @Test - // void testBedrockAgentDataSourceId() { - // doTestBedrockAgentDataSourceId(); - // } - // - // @Test - // void testBedrockRuntimeAmazonTitan() { - // doTestBedrockRuntimeAmazonTitan(); - // } - // - // @Test - // void testBedrockRuntimeAi21Jamba() { - // doTestBedrockRuntimeAi21Jamba(); - // } - // - // @Test - // void testBedrockRuntimeAnthropicClaude() { - // doTestBedrockRuntimeAnthropicClaude(); - // } - // - // @Test - // void testBedrockRuntimeCohereCommandR() { - // doTestBedrockRuntimeCohereCommandR(); - // } - // - // @Test - // void testBedrockRuntimeMetaLlama() { - // doTestBedrockRuntimeMetaLlama(); - // } - // - // @Test - // void testBedrockRuntimeMistral() { - // doTestBedrockRuntimeMistral(); - // } - // - // @Test - // void testBedrockGuardrailId() { - // doTestBedrockGuardrailId(); - // } - // - // @Test - // void testBedrockAgentRuntimeAgentId() { - // doTestBedrockAgentRuntimeAgentId(); - // } - // - // // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported - // in - // // OTEL BedrockAgentRuntime instrumentation - // @Test - // void testBedrockAgentRuntimeKnowledgeBaseId() { - // doTestBedrockAgentRuntimeKnowledgeBaseId(); - // } + @Test + void testBedrockAgentGetKnowlesgeBaseId() { + doTestBedrockAgentKnowledgeBaseId(); + } + + @Test + void testBedrockAgentAgentId() { + doTestBedrockAgentAgentId(); + } + + @Test + void testBedrockAgentDataSourceId() { + doTestBedrockAgentDataSourceId(); + } + + @Test + void testBedrockRuntimeAmazonTitan() { + doTestBedrockRuntimeAmazonTitan(); + } + + @Test + void testBedrockRuntimeAi21Jamba() { + doTestBedrockRuntimeAi21Jamba(); + } + + @Test + void testBedrockRuntimeAnthropicClaude() { + doTestBedrockRuntimeAnthropicClaude(); + } + + @Test + void testBedrockRuntimeCohereCommandR() { + doTestBedrockRuntimeCohereCommandR(); + } + + @Test + void testBedrockRuntimeMetaLlama() { + doTestBedrockRuntimeMetaLlama(); + } + + @Test + void testBedrockRuntimeMistral() { + doTestBedrockRuntimeMistral(); + } + + @Test + void testBedrockGuardrailId() { + doTestBedrockGuardrailId(); + } + + @Test + void testBedrockAgentRuntimeAgentId() { + doTestBedrockAgentRuntimeAgentId(); + } + + // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported + // in + // OTEL BedrockAgentRuntime instrumentation + @Test + void testBedrockAgentRuntimeKnowledgeBaseId() { + doTestBedrockAgentRuntimeKnowledgeBaseId(); + } } diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 64008c1fa8..6394ab93c8 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -27,7 +27,7 @@ data class DependencySet(val group: String, val version: String, val modules: Li val TEST_SNAPSHOTS = rootProject.findProperty("testUpstreamSnapshots") == "true" // This is the version of the upstream instrumentation BOM -val otelVersion = "1.33.6" +val otelVersion = "1.33.6-adot1" val otelSnapshotVersion = "1.33.6" val otelAlphaVersion = if (!TEST_SNAPSHOTS) "$otelVersion-alpha" else "$otelSnapshotVersion-alpha-SNAPSHOT" val otelJavaAgentVersion = if (!TEST_SNAPSHOTS) otelVersion else "$otelSnapshotVersion-SNAPSHOT" From bf4f2658945666bb50e1636c6443925411c296bd Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Wed, 27 Nov 2024 23:59:13 +0000 Subject: [PATCH 3/6] Flip back to version 17 in workflow build. --- .github/workflows/codeql-analysis.yml | 2 +- .../workflows/docker-build-smoke-tests-fake-backend.yml | 2 +- .github/workflows/e2e-tests-app-with-java-agent.yml | 8 ++++---- .github/workflows/e2e-tests-with-operator.yml | 2 +- .github/workflows/main-build.yml | 6 +++--- .github/workflows/nightly-upstream-snapshot-build.yml | 4 ++-- .github/workflows/owasp.yml | 2 +- .github/workflows/patch-release-build.yml | 2 +- .github/workflows/pr-build.yml | 4 ++-- .github/workflows/release-build.yml | 2 +- .../appsignals/test/awssdk/v2/AwsSdkV2Test.java | 4 +--- 11 files changed, 18 insertions(+), 20 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6fdbea53fb..024cef746b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin - name: Cache local Maven repository diff --git a/.github/workflows/docker-build-smoke-tests-fake-backend.yml b/.github/workflows/docker-build-smoke-tests-fake-backend.yml index b9b04543c6..5cd5f2956c 100644 --- a/.github/workflows/docker-build-smoke-tests-fake-backend.yml +++ b/.github/workflows/docker-build-smoke-tests-fake-backend.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 - name: Configure AWS Credentials diff --git a/.github/workflows/e2e-tests-app-with-java-agent.yml b/.github/workflows/e2e-tests-app-with-java-agent.yml index d8e5956646..b2c4d744bf 100644 --- a/.github/workflows/e2e-tests-app-with-java-agent.yml +++ b/.github/workflows/e2e-tests-app-with-java-agent.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin # cache local patch outputs @@ -83,7 +83,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -114,7 +114,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -145,7 +145,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/e2e-tests-with-operator.yml b/.github/workflows/e2e-tests-with-operator.yml index 461757f21c..ffacf0c74c 100644 --- a/.github/workflows/e2e-tests-with-operator.yml +++ b/.github/workflows/e2e-tests-with-operator.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin # cache local patch outputs diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index d047bba4f3..8248c3d26f 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin # vaadin 14 tests fail with node 18 - name: Set up Node @@ -59,7 +59,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin # cache local patch outputs @@ -194,7 +194,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/nightly-upstream-snapshot-build.yml b/.github/workflows/nightly-upstream-snapshot-build.yml index 2f86e91a7e..ec7c607354 100644 --- a/.github/workflows/nightly-upstream-snapshot-build.yml +++ b/.github/workflows/nightly-upstream-snapshot-build.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 @@ -120,7 +120,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/owasp.yml b/.github/workflows/owasp.yml index ce48e9fdfd..fc7a030473 100644 --- a/.github/workflows/owasp.yml +++ b/.github/workflows/owasp.yml @@ -31,7 +31,7 @@ jobs: - name: Set up Java for dependency scan uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Configure AWS credentials for dependency scan diff --git a/.github/workflows/patch-release-build.yml b/.github/workflows/patch-release-build.yml index f508a861b0..c56255204e 100644 --- a/.github/workflows/patch-release-build.yml +++ b/.github/workflows/patch-release-build.yml @@ -63,7 +63,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index f17166ae08..38989dc65c 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin # vaadin 14 tests fail with node 18 - name: Set up Node @@ -58,7 +58,7 @@ jobs: - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: temurin - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index e74eaf6a92..5ddb016af7 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java index 1e097d9379..008c21a9bc 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java @@ -259,9 +259,7 @@ void testBedrockAgentRuntimeAgentId() { doTestBedrockAgentRuntimeAgentId(); } - // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported - // in - // OTEL BedrockAgentRuntime instrumentation + // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported in @Test void testBedrockAgentRuntimeKnowledgeBaseId() { doTestBedrockAgentRuntimeKnowledgeBaseId(); From 8e4558d7f637c58de3bda5aa1e4dbc7e38306117 Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Thu, 28 Nov 2024 17:03:45 +0000 Subject: [PATCH 4/6] Upgrade contract tests to utilize Java version 21. --- .github/workflows/main-build.yml | 4 ++-- .../workflows/nightly-upstream-snapshot-build.yml | 4 ++-- .github/workflows/pr-build.yml | 14 +++++++++++++- .../images/aws-sdk/aws-sdk-v1/build.gradle.kts | 2 +- .../images/aws-sdk/aws-sdk-v2/build.gradle.kts | 2 +- .../images/grpc/grpc-client/build.gradle.kts | 2 +- .../images/grpc/grpc-server/build.gradle.kts | 2 +- .../apache-http-client/build.gradle.kts | 2 +- .../native-http-client/build.gradle.kts | 2 +- .../netty-http-client/build.gradle.kts | 2 +- .../spring-mvc-client/build.gradle.kts | 2 +- .../http-servers/netty-server/build.gradle.kts | 2 +- .../http-servers/spring-mvc/build.gradle.kts | 2 +- .../images/http-servers/tomcat/build.gradle.kts | 2 +- appsignals-tests/images/jdbc/build.gradle.kts | 2 +- .../images/kafka/kafka-consumers/build.gradle.kts | 2 +- .../images/kafka/kafka-producers/build.gradle.kts | 2 +- .../images/mock-collector/build.gradle.kts | 2 +- scripts/docker/corretto-slim/Dockerfile | 2 +- 19 files changed, 33 insertions(+), 21 deletions(-) diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 8248c3d26f..07f8b29fa2 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -194,7 +194,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 @@ -219,7 +219,7 @@ jobs: key: ${{ runner.os }}-maven-local-${{ hashFiles('.github/patches/opentelemetry-java*.patch') }} - name: Pull base image of Contract Tests Sample Apps - run: docker pull public.ecr.aws/docker/library/amazoncorretto:17-alpine + run: docker pull public.ecr.aws/docker/library/amazoncorretto:21-alpine - name: Build snapshot with Gradle uses: gradle/gradle-build-action@v3 diff --git a/.github/workflows/nightly-upstream-snapshot-build.yml b/.github/workflows/nightly-upstream-snapshot-build.yml index ec7c607354..a364358265 100644 --- a/.github/workflows/nightly-upstream-snapshot-build.yml +++ b/.github/workflows/nightly-upstream-snapshot-build.yml @@ -120,7 +120,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - uses: gradle/wrapper-validation-action@v1 @@ -136,7 +136,7 @@ jobs: registry: public.ecr.aws - name: Pull base image of Contract Tests Sample Apps - run: docker pull public.ecr.aws/docker/library/amazoncorretto:17-alpine + run: docker pull public.ecr.aws/docker/library/amazoncorretto:21-alpine - name: Build snapshot with Gradle uses: gradle/gradle-build-action@v3 diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index 38989dc65c..9e47a15bce 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -81,9 +81,15 @@ jobs: with: arguments: build integrationTests --stacktrace -PenableCoverage=true -PlocalDocker=true + - name: Set up Java version for tests + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: temurin + - name: Pull base image of Contract Tests Sample Apps if: ${{ matrix.os == 'ubuntu-latest' }} - run: docker pull public.ecr.aws/docker/library/amazoncorretto:17-alpine + run: docker pull public.ecr.aws/docker/library/amazoncorretto:21-alpine - name: Run contract tests uses: gradle/gradle-build-action@v3 @@ -91,6 +97,12 @@ jobs: with: arguments: contractTests -PlocalDocker=true -i + - name: Set up Java version for image build + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + - name: Get current version if: ${{ matrix.os == 'ubuntu-latest' }} shell: bash diff --git a/appsignals-tests/images/aws-sdk/aws-sdk-v1/build.gradle.kts b/appsignals-tests/images/aws-sdk/aws-sdk-v1/build.gradle.kts index 6ee3f0cae1..ab6010e69a 100644 --- a/appsignals-tests/images/aws-sdk/aws-sdk-v1/build.gradle.kts +++ b/appsignals-tests/images/aws-sdk/aws-sdk-v1/build.gradle.kts @@ -53,7 +53,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-aws-sdk-v1", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/aws-sdk/aws-sdk-v2/build.gradle.kts b/appsignals-tests/images/aws-sdk/aws-sdk-v2/build.gradle.kts index e50f70772f..90ed794f9b 100644 --- a/appsignals-tests/images/aws-sdk/aws-sdk-v2/build.gradle.kts +++ b/appsignals-tests/images/aws-sdk/aws-sdk-v2/build.gradle.kts @@ -53,7 +53,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-aws-sdk-v2", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/grpc/grpc-client/build.gradle.kts b/appsignals-tests/images/grpc/grpc-client/build.gradle.kts index 9b529bb23f..c113cb447c 100644 --- a/appsignals-tests/images/grpc/grpc-client/build.gradle.kts +++ b/appsignals-tests/images/grpc/grpc-client/build.gradle.kts @@ -41,7 +41,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "grpc-client", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/grpc/grpc-server/build.gradle.kts b/appsignals-tests/images/grpc/grpc-server/build.gradle.kts index 73be8257d2..a7e0728029 100644 --- a/appsignals-tests/images/grpc/grpc-server/build.gradle.kts +++ b/appsignals-tests/images/grpc/grpc-server/build.gradle.kts @@ -46,7 +46,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "grpc-server", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-clients/apache-http-client/build.gradle.kts b/appsignals-tests/images/http-clients/apache-http-client/build.gradle.kts index 8315cf4bdc..5ba716f7c1 100644 --- a/appsignals-tests/images/http-clients/apache-http-client/build.gradle.kts +++ b/appsignals-tests/images/http-clients/apache-http-client/build.gradle.kts @@ -43,7 +43,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-apache-http-client-app", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-clients/native-http-client/build.gradle.kts b/appsignals-tests/images/http-clients/native-http-client/build.gradle.kts index 127a3787f9..2827da3637 100644 --- a/appsignals-tests/images/http-clients/native-http-client/build.gradle.kts +++ b/appsignals-tests/images/http-clients/native-http-client/build.gradle.kts @@ -42,7 +42,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-native-http-client-app", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-clients/netty-http-client/build.gradle.kts b/appsignals-tests/images/http-clients/netty-http-client/build.gradle.kts index 37813f7a0a..ac481d4769 100644 --- a/appsignals-tests/images/http-clients/netty-http-client/build.gradle.kts +++ b/appsignals-tests/images/http-clients/netty-http-client/build.gradle.kts @@ -43,7 +43,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-netty-http-client-app", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-clients/spring-mvc-client/build.gradle.kts b/appsignals-tests/images/http-clients/spring-mvc-client/build.gradle.kts index 08a644c838..4235fa0d54 100644 --- a/appsignals-tests/images/http-clients/spring-mvc-client/build.gradle.kts +++ b/appsignals-tests/images/http-clients/spring-mvc-client/build.gradle.kts @@ -39,7 +39,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-spring-mvc-client-app", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-servers/netty-server/build.gradle.kts b/appsignals-tests/images/http-servers/netty-server/build.gradle.kts index e017e85e4d..307ab89146 100644 --- a/appsignals-tests/images/http-servers/netty-server/build.gradle.kts +++ b/appsignals-tests/images/http-servers/netty-server/build.gradle.kts @@ -42,7 +42,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-http-server-netty-server", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-servers/spring-mvc/build.gradle.kts b/appsignals-tests/images/http-servers/spring-mvc/build.gradle.kts index e39d7ff7d6..5ed341d6f6 100644 --- a/appsignals-tests/images/http-servers/spring-mvc/build.gradle.kts +++ b/appsignals-tests/images/http-servers/spring-mvc/build.gradle.kts @@ -41,7 +41,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-http-server-spring-mvc", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/http-servers/tomcat/build.gradle.kts b/appsignals-tests/images/http-servers/tomcat/build.gradle.kts index a97ed1ab6c..1ff2464e5b 100644 --- a/appsignals-tests/images/http-servers/tomcat/build.gradle.kts +++ b/appsignals-tests/images/http-servers/tomcat/build.gradle.kts @@ -44,7 +44,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-http-server-tomcat", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/jdbc/build.gradle.kts b/appsignals-tests/images/jdbc/build.gradle.kts index 983992c7cb..073f6d4c40 100644 --- a/appsignals-tests/images/jdbc/build.gradle.kts +++ b/appsignals-tests/images/jdbc/build.gradle.kts @@ -45,7 +45,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-jdbc-app", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/kafka/kafka-consumers/build.gradle.kts b/appsignals-tests/images/kafka/kafka-consumers/build.gradle.kts index 29fc199788..91ef8a7528 100644 --- a/appsignals-tests/images/kafka/kafka-consumers/build.gradle.kts +++ b/appsignals-tests/images/kafka/kafka-consumers/build.gradle.kts @@ -47,7 +47,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-kafka-kafka-consumers", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/kafka/kafka-producers/build.gradle.kts b/appsignals-tests/images/kafka/kafka-producers/build.gradle.kts index ffc26bb0c2..a7e0b98f08 100644 --- a/appsignals-tests/images/kafka/kafka-producers/build.gradle.kts +++ b/appsignals-tests/images/kafka/kafka-producers/build.gradle.kts @@ -47,7 +47,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-tests-kafka-kafka-producers", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/appsignals-tests/images/mock-collector/build.gradle.kts b/appsignals-tests/images/mock-collector/build.gradle.kts index 5b9883299c..16c1715b81 100644 --- a/appsignals-tests/images/mock-collector/build.gradle.kts +++ b/appsignals-tests/images/mock-collector/build.gradle.kts @@ -42,7 +42,7 @@ tasks { } jib { configureImages( - "public.ecr.aws/docker/library/amazoncorretto:17-alpine", + "public.ecr.aws/docker/library/amazoncorretto:21-alpine", "aws-appsignals-mock-collector", localDocker = rootProject.property("localDocker")!! == "true", multiPlatform = false, diff --git a/scripts/docker/corretto-slim/Dockerfile b/scripts/docker/corretto-slim/Dockerfile index b9c97e3781..5303d4d2c0 100644 --- a/scripts/docker/corretto-slim/Dockerfile +++ b/scripts/docker/corretto-slim/Dockerfile @@ -1,4 +1,4 @@ -FROM public.ecr.aws/docker/library/amazoncorretto:17-alpine-jdk +FROM public.ecr.aws/docker/library/amazoncorretto:21-alpine-jdk # Copied from https://github.com/corretto/corretto-docker/blob/master/11/jre/alpine/Dockerfile RUN apk update && apk add binutils && jlink --endian little --release-info $JAVA_HOME/release \ From 4dd58f02d70bab2062fbefc26e261a3c725aee8f Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Mon, 2 Dec 2024 10:49:28 -0800 Subject: [PATCH 5/6] Code clean up. --- .../opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java | 1 + 1 file changed, 1 insertion(+) diff --git a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java index 008c21a9bc..46c6b7e425 100644 --- a/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java +++ b/appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java @@ -260,6 +260,7 @@ void testBedrockAgentRuntimeAgentId() { } // TODO: Enable testBedrockAgentRuntimeKnowledgeBaseId test after KnowledgeBaseId is supported in + // OTEL BedrockAgentRuntime instrumentation @Test void testBedrockAgentRuntimeKnowledgeBaseId() { doTestBedrockAgentRuntimeKnowledgeBaseId(); From cf962eec15e3504ce97b86dd9204c7c0d1dad8e9 Mon Sep 17 00:00:00 2001 From: Zhonghao Zhao Date: Tue, 10 Dec 2024 16:45:16 -0800 Subject: [PATCH 6/6] Update patch file. --- .../opentelemetry-java-instrumentation.patch | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/patches/opentelemetry-java-instrumentation.patch b/.github/patches/opentelemetry-java-instrumentation.patch index ab95d263b4..6eda0e8374 100644 --- a/.github/patches/opentelemetry-java-instrumentation.patch +++ b/.github/patches/opentelemetry-java-instrumentation.patch @@ -506,7 +506,7 @@ index 245f09a5d8..d2bdf1c987 100644 + } } diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java -index bb2ae9266c..4af4a56b26 100644 +index bb2ae9266c..36e216047f 100644 --- a/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java +++ b/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/RequestAccess.java @@ -8,6 +8,7 @@ package io.opentelemetry.instrumentation.awssdk.v1_11; @@ -676,7 +676,7 @@ index bb2ae9266c..4af4a56b26 100644 @Nullable private static String invokeOrNull(@Nullable MethodHandle method, Object obj) { if (method == null) { -@@ -67,6 +190,18 @@ final class RequestAccess { +@@ -67,6 +190,17 @@ final class RequestAccess { @Nullable private final MethodHandle getQueueName; @Nullable private final MethodHandle getStreamName; @Nullable private final MethodHandle getTableName; @@ -685,7 +685,6 @@ index bb2ae9266c..4af4a56b26 100644 + @Nullable private final MethodHandle getDataSourceId; + @Nullable private final MethodHandle getGuardrailId; + @Nullable private final MethodHandle getModelId; -+ @Nullable private final MethodHandle getBody; + @Nullable private final MethodHandle getStateMachineArn; + @Nullable private final MethodHandle getStepFunctionsActivityArn; + @Nullable private final MethodHandle getSnsTopicArn; @@ -695,7 +694,7 @@ index bb2ae9266c..4af4a56b26 100644 private RequestAccess(Class clz) { getBucketName = findAccessorOrNull(clz, "getBucketName"); -@@ -74,6 +209,17 @@ final class RequestAccess { +@@ -74,6 +208,17 @@ final class RequestAccess { getQueueName = findAccessorOrNull(clz, "getQueueName"); getStreamName = findAccessorOrNull(clz, "getStreamName"); getTableName = findAccessorOrNull(clz, "getTableName"); @@ -713,7 +712,7 @@ index bb2ae9266c..4af4a56b26 100644 } @Nullable -@@ -85,4 +231,21 @@ final class RequestAccess { +@@ -85,4 +230,21 @@ final class RequestAccess { return null; } } @@ -1053,7 +1052,7 @@ index 54253d0f7b..2374bd4a52 100644 BatchGetItem( DYNAMODB, diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java -index 9062f2aa17..a09098af79 100644 +index 9062f2aa17..1c34035588 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkRequestType.java @@ -5,17 +5,69 @@ @@ -1114,7 +1113,7 @@ index 9062f2aa17..a09098af79 100644 + BEDROCKKNOWLEDGEBASEOPERATION( + request(AWS_KNOWLEDGE_BASE_ID.getKey(), "knowledgeBaseId"), + response(AWS_KNOWLEDGE_BASE_ID.getKey(), "knowledgeBaseId")), -+ ++ BEDROCKRUNTIME(request(GEN_AI_MODEL.getKey(), "modelId")), + STEPFUNCTION( + request(AWS_STATE_MACHINE_ARN.getKey(), "stateMachineArn"), + request(AWS_STEP_FUNCTIONS_ACTIVITY_ARN.getKey(), "activityArn")),