Skip to content

Commit 520fc73

Browse files
authored
Use static import for semconv attributes in camel tests (#12780)
1 parent 98b75c9 commit 520fc73

File tree

3 files changed

+58
-65
lines changed

3 files changed

+58
-65
lines changed

docs/contributing/style-guideline.md

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ rough guideline of what are commonly accepted static imports:
6666
- Immutable constants (where clearly named)
6767
- Singleton instances (especially where clearly named and hopefully immutable)
6868
- `tracer()` methods that expose tracer singleton instances
69+
- Semantic convention attribute keys used in tests
6970

7071
Some of these are enforced by checkstyle rules:
7172

instrumentation/camel-2.20/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/aws/AwsSpanAssertions.java

+51-59
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,26 @@
99
import static io.opentelemetry.api.trace.SpanKind.CLIENT;
1010
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1111
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
12+
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
13+
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
14+
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PROTOCOL_VERSION;
15+
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
16+
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
17+
import static io.opentelemetry.semconv.UrlAttributes.URL_FULL;
18+
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_REQUEST_ID;
19+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME;
20+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID;
21+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_OPERATION;
22+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_SYSTEM;
23+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MessagingSystemIncubatingValues.AWS_SQS;
24+
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_METHOD;
25+
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SERVICE;
26+
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM;
1227
import static org.assertj.core.api.Assertions.assertThat;
1328

1429
import io.opentelemetry.api.trace.SpanKind;
1530
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
1631
import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
17-
import io.opentelemetry.semconv.HttpAttributes;
18-
import io.opentelemetry.semconv.NetworkAttributes;
19-
import io.opentelemetry.semconv.ServerAttributes;
20-
import io.opentelemetry.semconv.UrlAttributes;
21-
import io.opentelemetry.semconv.incubating.AwsIncubatingAttributes;
22-
import io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes;
23-
import io.opentelemetry.semconv.incubating.RpcIncubatingAttributes;
2432
import java.util.ArrayList;
2533
import java.util.Arrays;
2634
import java.util.List;
@@ -72,53 +80,38 @@ static SpanDataAssert sqs(
7280
val ->
7381
val.satisfiesAnyOf(
7482
v -> assertThat(v).isEqualTo(queueUrl), v -> assertThat(v).isNull())),
83+
satisfies(AWS_REQUEST_ID, val -> val.isInstanceOf(String.class)),
84+
equalTo(HTTP_REQUEST_METHOD, "POST"),
85+
equalTo(HTTP_RESPONSE_STATUS_CODE, 200),
86+
satisfies(URL_FULL, val -> val.isInstanceOf(String.class)),
87+
satisfies(SERVER_ADDRESS, stringAssert -> stringAssert.isInstanceOf(String.class)),
7588
satisfies(
76-
AwsIncubatingAttributes.AWS_REQUEST_ID, val -> val.isInstanceOf(String.class)),
77-
equalTo(HttpAttributes.HTTP_REQUEST_METHOD, "POST"),
78-
equalTo(HttpAttributes.HTTP_RESPONSE_STATUS_CODE, 200),
79-
satisfies(UrlAttributes.URL_FULL, val -> val.isInstanceOf(String.class)),
80-
satisfies(
81-
ServerAttributes.SERVER_ADDRESS,
82-
stringAssert -> stringAssert.isInstanceOf(String.class)),
83-
satisfies(
84-
ServerAttributes.SERVER_PORT,
89+
SERVER_PORT,
8590
val ->
8691
val.satisfiesAnyOf(
8792
v -> assertThat(v).isNull(),
8893
v -> assertThat(v).isInstanceOf(Number.class))),
89-
equalTo(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
90-
equalTo(RpcIncubatingAttributes.RPC_SYSTEM, "aws-api"),
91-
satisfies(
92-
RpcIncubatingAttributes.RPC_METHOD,
93-
stringAssert -> stringAssert.isEqualTo(rpcMethod)),
94-
equalTo(RpcIncubatingAttributes.RPC_SERVICE, "AmazonSQS")));
94+
equalTo(NETWORK_PROTOCOL_VERSION, "1.1"),
95+
equalTo(RPC_SYSTEM, "aws-api"),
96+
satisfies(RPC_METHOD, stringAssert -> stringAssert.isEqualTo(rpcMethod)),
97+
equalTo(RPC_SERVICE, "AmazonSQS")));
9598

9699
if (spanName.endsWith("receive")
97100
|| spanName.endsWith("process")
98101
|| spanName.endsWith("publish")) {
99102
attributeAssertions.addAll(
100103
Arrays.asList(
101-
equalTo(MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME, queueName),
102-
equalTo(
103-
MessagingIncubatingAttributes.MESSAGING_SYSTEM,
104-
MessagingIncubatingAttributes.MessagingSystemIncubatingValues.AWS_SQS)));
104+
equalTo(MESSAGING_DESTINATION_NAME, queueName), equalTo(MESSAGING_SYSTEM, AWS_SQS)));
105105
if (spanName.endsWith("receive")) {
106-
attributeAssertions.add(
107-
equalTo(MessagingIncubatingAttributes.MESSAGING_OPERATION, "receive"));
106+
attributeAssertions.add(equalTo(MESSAGING_OPERATION, "receive"));
108107
} else if (spanName.endsWith("process")) {
108+
attributeAssertions.add(equalTo(MESSAGING_OPERATION, "process"));
109109
attributeAssertions.add(
110-
equalTo(MessagingIncubatingAttributes.MESSAGING_OPERATION, "process"));
111-
attributeAssertions.add(
112-
satisfies(
113-
MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID,
114-
val -> assertThat(val).isNotNull()));
110+
satisfies(MESSAGING_MESSAGE_ID, val -> assertThat(val).isNotNull()));
115111
} else if (spanName.endsWith("publish")) {
112+
attributeAssertions.add(equalTo(MESSAGING_OPERATION, "publish"));
116113
attributeAssertions.add(
117-
equalTo(MessagingIncubatingAttributes.MESSAGING_OPERATION, "publish"));
118-
attributeAssertions.add(
119-
satisfies(
120-
MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID,
121-
val -> assertThat(val).isNotNull()));
114+
satisfies(MESSAGING_MESSAGE_ID, val -> assertThat(val).isNotNull()));
122115
}
123116
}
124117

@@ -133,16 +126,16 @@ static SpanDataAssert s3(SpanDataAssert span, String spanName, String bucketName
133126
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
134127
satisfies(stringKey("aws.endpoint"), val -> val.isInstanceOf(String.class)),
135128
equalTo(stringKey("aws.bucket.name"), bucketName),
136-
equalTo(RpcIncubatingAttributes.RPC_SYSTEM, "aws-api"),
137-
equalTo(RpcIncubatingAttributes.RPC_METHOD, spanName.substring(3)),
138-
equalTo(RpcIncubatingAttributes.RPC_SERVICE, "Amazon S3"),
139-
equalTo(HttpAttributes.HTTP_REQUEST_METHOD, method),
140-
equalTo(HttpAttributes.HTTP_RESPONSE_STATUS_CODE, 200),
141-
satisfies(UrlAttributes.URL_FULL, val -> val.isInstanceOf(String.class)),
142-
equalTo(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
143-
satisfies(ServerAttributes.SERVER_ADDRESS, val -> val.isInstanceOf(String.class)),
129+
equalTo(RPC_SYSTEM, "aws-api"),
130+
equalTo(RPC_METHOD, spanName.substring(3)),
131+
equalTo(RPC_SERVICE, "Amazon S3"),
132+
equalTo(HTTP_REQUEST_METHOD, method),
133+
equalTo(HTTP_RESPONSE_STATUS_CODE, 200),
134+
satisfies(URL_FULL, val -> val.isInstanceOf(String.class)),
135+
equalTo(NETWORK_PROTOCOL_VERSION, "1.1"),
136+
satisfies(SERVER_ADDRESS, val -> val.isInstanceOf(String.class)),
144137
satisfies(
145-
ServerAttributes.SERVER_PORT,
138+
SERVER_PORT,
146139
val ->
147140
val.satisfiesAnyOf(
148141
v -> val.isInstanceOf(Number.class), v -> assertThat(v).isNull())));
@@ -154,19 +147,18 @@ static SpanDataAssert sns(SpanDataAssert span, String spanName, String topicArn)
154147
.hasAttributesSatisfyingExactly(
155148
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
156149
satisfies(stringKey("aws.endpoint"), val -> val.isInstanceOf(String.class)),
150+
satisfies(AWS_REQUEST_ID, val -> val.isInstanceOf(String.class)),
151+
equalTo(RPC_SYSTEM, "aws-api"),
152+
equalTo(RPC_METHOD, spanName.substring(4)),
153+
equalTo(RPC_SERVICE, "AmazonSNS"),
154+
equalTo(MESSAGING_DESTINATION_NAME, topicArn),
155+
equalTo(HTTP_REQUEST_METHOD, "POST"),
156+
equalTo(HTTP_RESPONSE_STATUS_CODE, 200),
157+
satisfies(URL_FULL, val -> val.isInstanceOf(String.class)),
158+
equalTo(NETWORK_PROTOCOL_VERSION, "1.1"),
159+
satisfies(SERVER_ADDRESS, val -> val.isInstanceOf(String.class)),
157160
satisfies(
158-
AwsIncubatingAttributes.AWS_REQUEST_ID, val -> val.isInstanceOf(String.class)),
159-
equalTo(RpcIncubatingAttributes.RPC_SYSTEM, "aws-api"),
160-
equalTo(RpcIncubatingAttributes.RPC_METHOD, spanName.substring(4)),
161-
equalTo(RpcIncubatingAttributes.RPC_SERVICE, "AmazonSNS"),
162-
equalTo(MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME, topicArn),
163-
equalTo(HttpAttributes.HTTP_REQUEST_METHOD, "POST"),
164-
equalTo(HttpAttributes.HTTP_RESPONSE_STATUS_CODE, 200),
165-
satisfies(UrlAttributes.URL_FULL, val -> val.isInstanceOf(String.class)),
166-
equalTo(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
167-
satisfies(ServerAttributes.SERVER_ADDRESS, val -> val.isInstanceOf(String.class)),
168-
satisfies(
169-
ServerAttributes.SERVER_PORT,
161+
SERVER_PORT,
170162
val ->
171163
val.satisfiesAnyOf(
172164
v -> val.isInstanceOf(Number.class), v -> assertThat(v).isNull())));

instrumentation/camel-2.20/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/aws/CamelSpanAssertions.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
import static io.opentelemetry.api.common.AttributeKey.stringKey;
99
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1010
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
11+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME;
12+
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID;
1113

1214
import io.opentelemetry.api.trace.SpanKind;
1315
import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
14-
import io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes;
1516

1617
class CamelSpanAssertions {
1718

@@ -31,7 +32,7 @@ static SpanDataAssert sqsProduce(SpanDataAssert span, String queueName) {
3132
equalTo(
3233
stringKey("camel.uri"),
3334
"aws-sqs://" + queueName + "?amazonSQSClient=%23sqsClient&delay=1000"),
34-
equalTo(MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME, queueName));
35+
equalTo(MESSAGING_DESTINATION_NAME, queueName));
3536
}
3637

3738
static SpanDataAssert sqsConsume(SpanDataAssert span, String queueName) {
@@ -45,10 +46,9 @@ static SpanDataAssert sqsConsume(SpanDataAssert span, String queueName, int dela
4546
equalTo(
4647
stringKey("camel.uri"),
4748
"aws-sqs://" + queueName + "?amazonSQSClient=%23sqsClient&delay=" + delay),
48-
equalTo(MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME, queueName),
49+
equalTo(MESSAGING_DESTINATION_NAME, queueName),
4950
satisfies(
50-
MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID,
51-
stringAssert -> stringAssert.isInstanceOf(String.class)));
51+
MESSAGING_MESSAGE_ID, stringAssert -> stringAssert.isInstanceOf(String.class)));
5252
}
5353

5454
static SpanDataAssert snsPublish(SpanDataAssert span, String topicName) {
@@ -57,7 +57,7 @@ static SpanDataAssert snsPublish(SpanDataAssert span, String topicName) {
5757
.hasAttributesSatisfying(
5858
equalTo(
5959
stringKey("camel.uri"), "aws-sns://" + topicName + "?amazonSNSClient=%23snsClient"),
60-
equalTo(MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME, topicName));
60+
equalTo(MESSAGING_DESTINATION_NAME, topicName));
6161
}
6262

6363
static SpanDataAssert s3(SpanDataAssert span, String bucketName) {

0 commit comments

Comments
 (0)