From ffafd35ddcc314813ee355050c7523fac422710b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 22:45:35 +0000 Subject: [PATCH 1/4] Initial plan From 908f4ab98bdc2c4fdcdcec684918a2d899bd20aa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:04:07 +0000 Subject: [PATCH 2/4] Remove experimental flag requirement for spec'd AWS attributes Response attributes defined in AwsSdkRequestType (like aws.secretsmanager.secret.arn, aws.sns.topic.arn, etc.) are documented in semantic-conventions as incubating attributes and should always be extracted, regardless of the experimental flag setting. Co-authored-by: trask <218610+trask@users.noreply.github.com> --- .../awssdk/v2_2/internal/TracingExecutionInterceptor.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java index 80b47a563ef6..d72b73852134 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java @@ -401,11 +401,9 @@ private void onSdkResponse( BedrockRuntimeAccess.recordResponseEvents( otelContext, eventLogger, executionAttributes, response, genAiCaptureMessageContent); } - if (captureExperimentalSpanAttributes) { - AwsSdkRequest sdkRequest = executionAttributes.getAttribute(AWS_SDK_REQUEST_ATTRIBUTE); - if (sdkRequest != null) { - fieldMapper.mapToAttributes(response, sdkRequest, span); - } + AwsSdkRequest sdkRequest = executionAttributes.getAttribute(AWS_SDK_REQUEST_ATTRIBUTE); + if (sdkRequest != null) { + fieldMapper.mapToAttributes(response, sdkRequest, span); } } From 41525dbb62b70495943795fed72a1fba9af6ce8e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:18:48 +0000 Subject: [PATCH 3/4] Fix unused variable warning with @SuppressWarnings annotation The captureExperimentalSpanAttributes field is kept for future use when we want to differentiate between spec'd and experimental attributes, but is currently unused after removing the conditional check for response attribute extraction. Co-authored-by: trask <218610+trask@users.noreply.github.com> --- .../awssdk/v2_2/internal/TracingExecutionInterceptor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java index d72b73852134..4fc2af087bff 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java @@ -79,6 +79,8 @@ public final class TracingExecutionInterceptor implements ExecutionInterceptor { private final Instrumenter dynamoDbInstrumenter; private final Instrumenter bedrockRuntimeInstrumenter; private final Logger eventLogger; + // Kept for future use, when we want to differentiate between spec'd and experimental attributes + @SuppressWarnings("UnusedVariable") private final boolean captureExperimentalSpanAttributes; static final AttributeKey HTTP_ERROR_MSG = From ef8a880102f4f9af9c08ade36ac3b219c76bd272 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Oct 2025 03:48:17 +0000 Subject: [PATCH 4/4] Remove unused captureExperimentalSpanAttributes parameter Removed the captureExperimentalSpanAttributes field and constructor parameter from TracingExecutionInterceptor as it's no longer used after the conditional check for response attribute extraction was removed. Co-authored-by: trask <218610+trask@users.noreply.github.com> --- .../instrumentation/awssdk/v2_2/AwsSdkTelemetry.java | 1 - .../awssdk/v2_2/internal/TracingExecutionInterceptor.java | 5 ----- 2 files changed, 6 deletions(-) diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkTelemetry.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkTelemetry.java index 54adcdc3ef28..4bea5aaa5918 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkTelemetry.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkTelemetry.java @@ -121,7 +121,6 @@ public ExecutionInterceptor newExecutionInterceptor() { dynamoDbInstrumenter, bedrockRuntimeInstrumenter, eventLogger, - captureExperimentalSpanAttributes, messagingPropagator, useXrayPropagator, recordIndividualHttpError, diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java index 4fc2af087bff..72ab65a6ece6 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/internal/TracingExecutionInterceptor.java @@ -79,9 +79,6 @@ public final class TracingExecutionInterceptor implements ExecutionInterceptor { private final Instrumenter dynamoDbInstrumenter; private final Instrumenter bedrockRuntimeInstrumenter; private final Logger eventLogger; - // Kept for future use, when we want to differentiate between spec'd and experimental attributes - @SuppressWarnings("UnusedVariable") - private final boolean captureExperimentalSpanAttributes; static final AttributeKey HTTP_ERROR_MSG = AttributeKey.stringKey("aws.http.error_message"); @@ -119,7 +116,6 @@ public TracingExecutionInterceptor( Instrumenter dynamoDbInstrumenter, Instrumenter bedrockRuntimeInstrumenter, Logger eventLogger, - boolean captureExperimentalSpanAttributes, TextMapPropagator messagingPropagator, boolean useXrayPropagator, boolean recordIndividualHttpError, @@ -131,7 +127,6 @@ public TracingExecutionInterceptor( this.dynamoDbInstrumenter = dynamoDbInstrumenter; this.bedrockRuntimeInstrumenter = bedrockRuntimeInstrumenter; this.eventLogger = eventLogger; - this.captureExperimentalSpanAttributes = captureExperimentalSpanAttributes; this.messagingPropagator = messagingPropagator; this.useXrayPropagator = useXrayPropagator; this.recordIndividualHttpError = recordIndividualHttpError;