Skip to content

Commit 4f697dc

Browse files
authored
Convert aws sdk 2.2 Sqs Suppress Receive Spans Tests (#12895)
1 parent 47ada96 commit 4f697dc

File tree

14 files changed

+654
-796
lines changed

14 files changed

+654
-796
lines changed

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/test/groovy/Aws2SqsSuppressReceiveSpansTest.groovy

-27
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.awssdk.v2_2;
7+
8+
import io.opentelemetry.instrumentation.awssdk.v2_2.AbstractAws2SqsSuppressReceiveSpansTest;
9+
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
11+
import org.junit.jupiter.api.extension.RegisterExtension;
12+
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
13+
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
14+
import software.amazon.awssdk.services.sqs.SqsClient;
15+
16+
class Aws2SqsSuppressReceiveSpansTest extends AbstractAws2SqsSuppressReceiveSpansTest {
17+
18+
@RegisterExtension
19+
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
20+
21+
@Override
22+
protected InstrumentationExtension getTesting() {
23+
return testing;
24+
}
25+
26+
@Override
27+
protected SqsClient configureSqsClient(SqsClient sqsClient) {
28+
return sqsClient;
29+
}
30+
31+
@Override
32+
protected SqsAsyncClient configureSqsClient(SqsAsyncClient sqsClient) {
33+
return sqsClient;
34+
}
35+
36+
@Override
37+
protected ClientOverrideConfiguration.Builder createOverrideConfigurationBuilder() {
38+
return ClientOverrideConfiguration.builder();
39+
}
40+
}

instrumentation/aws-sdk/aws-sdk-2.2/library/src/test/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/Aws2SqsSuppressReceiveSpansTest.groovy

-109
This file was deleted.

instrumentation/aws-sdk/aws-sdk-2.2/library/src/test/java/io/opentelemetry/instrumentation/awssdk/v2_2/Aws2SqsDefaultPropagatorTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Aws2SqsDefaultPropagatorTest extends Aws2SqsTracingTest {
2020
void configure(AwsSdkTelemetryBuilder telemetryBuilder) {}
2121

2222
@Override
23-
boolean isSqsAttributeInjectionEnabled() {
23+
protected boolean isSqsAttributeInjectionEnabled() {
2424
return false;
2525
}
2626

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v2_2;
7+
8+
import static org.assertj.core.api.Assertions.assertThat;
9+
10+
import java.net.URISyntaxException;
11+
import org.junit.jupiter.api.Test;
12+
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
13+
import software.amazon.awssdk.services.sqs.SqsClient;
14+
import software.amazon.awssdk.services.sqs.SqsClientBuilder;
15+
import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
16+
17+
class Aws2SqsSuppressReceiveSpansDefaultPropagatorTest extends Aws2SqsSuppressReceiveSpansTest {
18+
19+
@Override
20+
protected void configure(AwsSdkTelemetryBuilder telemetryBuilder) {}
21+
22+
@Override
23+
protected boolean isSqsAttributeInjectionEnabled() {
24+
return false;
25+
}
26+
27+
@Test
28+
void testDuplicateTracingInterceptor() throws URISyntaxException {
29+
SqsClientBuilder builder = SqsClient.builder();
30+
configureSdkClient(builder);
31+
ClientOverrideConfiguration overrideConfiguration =
32+
ClientOverrideConfiguration.builder()
33+
.addExecutionInterceptor(telemetry.newExecutionInterceptor())
34+
.addExecutionInterceptor(telemetry.newExecutionInterceptor())
35+
.build();
36+
builder.overrideConfiguration(overrideConfiguration);
37+
SqsClient client = configureSqsClient(builder.build());
38+
39+
client.createQueue(createQueueRequest);
40+
client.sendMessage(sendMessageRequest);
41+
ReceiveMessageResponse response = client.receiveMessage(receiveMessageRequest);
42+
43+
assertThat(response.messages().size()).isEqualTo(1);
44+
response.messages().forEach(message -> getTesting().runWithSpan("process child", () -> {}));
45+
46+
assertSqsTraces(false, false);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v2_2;
7+
8+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
9+
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
10+
import org.junit.jupiter.api.BeforeEach;
11+
import org.junit.jupiter.api.extension.RegisterExtension;
12+
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
13+
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
14+
import software.amazon.awssdk.services.sqs.SqsClient;
15+
16+
public abstract class Aws2SqsSuppressReceiveSpansTest
17+
extends AbstractAws2SqsSuppressReceiveSpansTest {
18+
protected AwsSdkTelemetry telemetry;
19+
20+
@RegisterExtension
21+
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
22+
23+
@Override
24+
protected InstrumentationExtension getTesting() {
25+
return testing;
26+
}
27+
28+
@Override
29+
protected SqsClient configureSqsClient(SqsClient sqsClient) {
30+
return telemetry.wrap(sqsClient);
31+
}
32+
33+
@Override
34+
protected SqsAsyncClient configureSqsClient(SqsAsyncClient sqsClient) {
35+
return telemetry.wrap(sqsClient);
36+
}
37+
38+
@Override
39+
protected ClientOverrideConfiguration.Builder createOverrideConfigurationBuilder() {
40+
return ClientOverrideConfiguration.builder()
41+
.addExecutionInterceptor(telemetry.newExecutionInterceptor());
42+
}
43+
44+
protected abstract void configure(AwsSdkTelemetryBuilder telemetryBuilder);
45+
46+
@BeforeEach
47+
void setup() {
48+
AwsSdkTelemetryBuilder telemetryBuilder =
49+
AwsSdkTelemetry.builder(getTesting().getOpenTelemetry())
50+
.setCaptureExperimentalSpanAttributes(true);
51+
configure(telemetryBuilder);
52+
telemetry = telemetryBuilder.build();
53+
}
54+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v2_2;
7+
8+
/**
9+
* We want to test the combination of W3C + Xray, as that's what you'll get in prod if you enable
10+
* W3C.
11+
*/
12+
class Aws2SqsSuppressReceiveSpansW3cPropagatorAndXrayPropagatorTest
13+
extends Aws2SqsSuppressReceiveSpansTest {
14+
15+
@Override
16+
protected void configure(AwsSdkTelemetryBuilder telemetryBuilder) {
17+
telemetryBuilder.setUseConfiguredPropagatorForMessaging(
18+
isSqsAttributeInjectionEnabled()); // Difference to main test
19+
}
20+
21+
@Override
22+
protected boolean isSqsAttributeInjectionEnabled() {
23+
return true;
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.awssdk.v2_2;
7+
8+
class Aws2SqsSuppressReceiveSpansW3cPropagatorTest extends Aws2SqsSuppressReceiveSpansTest {
9+
@Override
10+
protected void configure(AwsSdkTelemetryBuilder telemetryBuilder) {
11+
telemetryBuilder
12+
.setUseConfiguredPropagatorForMessaging(
13+
isSqsAttributeInjectionEnabled()) // Difference to main test
14+
.setUseXrayPropagator(
15+
isXrayInjectionEnabled()); // Disable to confirm messaging propagator actually works
16+
}
17+
18+
@Override
19+
protected boolean isSqsAttributeInjectionEnabled() {
20+
return true;
21+
}
22+
23+
@Override
24+
protected boolean isXrayInjectionEnabled() {
25+
return false;
26+
}
27+
}

instrumentation/aws-sdk/aws-sdk-2.2/library/src/test/java/io/opentelemetry/instrumentation/awssdk/v2_2/Aws2SqsW3cPropagatorAndXrayPropagatorTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void configure(AwsSdkTelemetryBuilder telemetryBuilder) {
1313
}
1414

1515
@Override
16-
boolean isSqsAttributeInjectionEnabled() {
16+
protected boolean isSqsAttributeInjectionEnabled() {
1717
return true;
1818
}
1919
}

instrumentation/aws-sdk/aws-sdk-2.2/library/src/test/java/io/opentelemetry/instrumentation/awssdk/v2_2/Aws2SqsW3cPropagatorTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ void configure(AwsSdkTelemetryBuilder telemetryBuilder) {
1717
}
1818

1919
@Override
20-
boolean isSqsAttributeInjectionEnabled() {
20+
protected boolean isSqsAttributeInjectionEnabled() {
2121
return true;
2222
}
2323

2424
@Override
25-
boolean isXrayInjectionEnabled() {
25+
protected boolean isXrayInjectionEnabled() {
2626
return false;
2727
}
2828
}

0 commit comments

Comments
 (0)