@@ -53,6 +53,59 @@ index f357a19f88..fa90530579 100644
5353
5454 testImplementation(project(":instrumentation:aws-sdk:aws-sdk-1.11:testing"))
5555
56+ diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AwsSpanAssertions.java b/instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AwsSpanAssertions.java
57+ index 483a0c5230..2415577e37 100644
58+ --- a/instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AwsSpanAssertions.java
59+ +++ b/instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AwsSpanAssertions.java
60+ @@ -85,11 +85,35 @@ class AwsSpanAssertions {
61+ }
62+
63+ static SpanDataAssert sns(SpanDataAssert span, String topicArn, String rpcMethod) {
64+ -
65+ - return span.hasName("SNS." + rpcMethod)
66+ + SpanDataAssert spanAssert = span.hasName("SNS." + rpcMethod)
67+ .hasKind(SpanKind.CLIENT)
68+ - .hasNoParent()
69+ - .hasAttributesSatisfyingExactly(
70+ + .hasNoParent();
71+ +
72+ + // For CreateTopic, the topicArn parameter might be null but aws.sns.topic.arn
73+ + // will be set from the response
74+ + if ("CreateTopic".equals(rpcMethod)) {
75+ + return spanAssert.hasAttributesSatisfyingExactly(
76+ + equalTo(stringKey("aws.agent"), "java-aws-sdk"),
77+ + satisfies(stringKey("aws.endpoint"), v -> v.isInstanceOf(String.class)),
78+ + satisfies(AWS_REQUEST_ID, v -> v.isInstanceOf(String.class)),
79+ + equalTo(RPC_METHOD, rpcMethod),
80+ + equalTo(RPC_SYSTEM, "aws-api"),
81+ + equalTo(RPC_SERVICE, "AmazonSNS"),
82+ + equalTo(HTTP_REQUEST_METHOD, "POST"),
83+ + equalTo(HTTP_RESPONSE_STATUS_CODE, 200),
84+ + satisfies(URL_FULL, val -> val.startsWith("http://")),
85+ + satisfies(SERVER_ADDRESS, v -> v.isInstanceOf(String.class)),
86+ + equalTo(NETWORK_PROTOCOL_VERSION, "1.1"),
87+ + satisfies(
88+ + SERVER_PORT,
89+ + val ->
90+ + val.satisfiesAnyOf(
91+ + v -> assertThat(v).isNull(),
92+ + v -> assertThat(v).isInstanceOf(Number.class))),
93+ + satisfies(stringKey("aws.sns.topic.arn"), v -> v.isInstanceOf(String.class)));
94+ + }
95+ +
96+ + return spanAssert.hasAttributesSatisfyingExactly(
97+ equalTo(stringKey("aws.agent"), "java-aws-sdk"),
98+ equalTo(MESSAGING_DESTINATION_NAME, topicArn),
99+ satisfies(stringKey("aws.endpoint"), v -> v.isInstanceOf(String.class)),
100+ @@ -107,6 +131,7 @@ class AwsSpanAssertions {
101+ val ->
102+ val.satisfiesAnyOf(
103+ v -> assertThat(v).isNull(),
104+ - v -> assertThat(v).isInstanceOf(Number.class))));
105+ + v -> assertThat(v).isInstanceOf(Number.class))),
106+ + equalTo(stringKey("aws.sns.topic.arn"), topicArn));
107+ }
108+ }
56109diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/library-autoconfigure/build.gradle.kts b/instrumentation/aws-sdk/aws-sdk-1.11/library-autoconfigure/build.gradle.kts
57110index 6cf49a21c4..3705634153 100644
58111--- a/instrumentation/aws-sdk/aws-sdk-1.11/library-autoconfigure/build.gradle.kts
0 commit comments