|
28 | 28 | import io.opentelemetry.instrumentation.test.utils.PortUtils;
|
29 | 29 | import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
30 | 30 | import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
|
| 31 | +import io.opentelemetry.sdk.trace.data.SpanData; |
31 | 32 | import io.opentelemetry.semconv.SemanticAttributes;
|
32 | 33 | import java.util.ArrayList;
|
33 | 34 | import java.util.Arrays;
|
@@ -324,7 +325,7 @@ void testSimpleSqsProducerConsumerServicesWithParentSpan() {
|
324 | 325 | val -> val.isInstanceOf(String.class)),
|
325 | 326 | equalTo(SemanticAttributes.NETWORK_PROTOCOL_VERSION, "1.1"))),
|
326 | 327 | trace ->
|
327 |
| - trace.hasSpansSatisfyingExactly( |
| 328 | + trace.hasSpansSatisfyingExactlyInAnyOrder( |
328 | 329 | span -> span.hasName("parent").hasNoParent().hasAttributes(Attributes.empty()),
|
329 | 330 | span ->
|
330 | 331 | span.hasName("SQS.ReceiveMessage")
|
@@ -369,32 +370,38 @@ void testSimpleSqsProducerConsumerServicesWithParentSpan() {
|
369 | 370 | equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
|
370 | 371 | equalTo(SemanticAttributes.MESSAGING_BATCH_MESSAGE_COUNT, 1),
|
371 | 372 | equalTo(SemanticAttributes.NETWORK_PROTOCOL_VERSION, "1.1")),
|
372 |
| - span -> |
373 |
| - span.hasName("testSdkSqs process") |
374 |
| - .hasKind(SpanKind.CONSUMER) |
375 |
| - .hasParent(trace.getSpan(2)) |
376 |
| - .hasAttributesSatisfyingExactly( |
377 |
| - equalTo(stringKey("aws.agent"), "java-aws-sdk"), |
378 |
| - equalTo(stringKey("aws.endpoint"), "http://localhost:" + sqsPort), |
379 |
| - equalTo( |
380 |
| - stringKey("aws.queue.url"), |
381 |
| - "http://localhost:" + sqsPort + "/000000000000/testSdkSqs"), |
382 |
| - equalTo(SemanticAttributes.RPC_SYSTEM, "aws-api"), |
383 |
| - equalTo(SemanticAttributes.RPC_SERVICE, "AmazonSQS"), |
384 |
| - equalTo(SemanticAttributes.RPC_METHOD, "ReceiveMessage"), |
385 |
| - equalTo(SemanticAttributes.HTTP_REQUEST_METHOD, "POST"), |
386 |
| - equalTo(SemanticAttributes.HTTP_RESPONSE_STATUS_CODE, 200), |
387 |
| - equalTo(SemanticAttributes.URL_FULL, "http://localhost:" + sqsPort), |
388 |
| - equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"), |
389 |
| - equalTo(SemanticAttributes.SERVER_PORT, sqsPort), |
390 |
| - equalTo(SemanticAttributes.MESSAGING_SYSTEM, "AmazonSQS"), |
391 |
| - equalTo( |
392 |
| - SemanticAttributes.MESSAGING_DESTINATION_NAME, "testSdkSqs"), |
393 |
| - equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"), |
394 |
| - satisfies( |
395 |
| - SemanticAttributes.MESSAGING_MESSAGE_ID, |
396 |
| - val -> val.isInstanceOf(String.class)), |
397 |
| - equalTo(SemanticAttributes.NETWORK_PROTOCOL_VERSION, "1.1")), |
| 373 | + span -> { |
| 374 | + // on jdk8 the order of the "SQS.ReceiveMessage" and "testSdkSqs receive" |
| 375 | + // spans can vary |
| 376 | + SpanData parent = |
| 377 | + "testSdkSqs receive".equals(trace.getSpan(2).getName()) |
| 378 | + ? trace.getSpan(2) |
| 379 | + : trace.getSpan(1); |
| 380 | + span.hasName("testSdkSqs process") |
| 381 | + .hasKind(SpanKind.CONSUMER) |
| 382 | + .hasParent(parent) |
| 383 | + .hasAttributesSatisfyingExactly( |
| 384 | + equalTo(stringKey("aws.agent"), "java-aws-sdk"), |
| 385 | + equalTo(stringKey("aws.endpoint"), "http://localhost:" + sqsPort), |
| 386 | + equalTo( |
| 387 | + stringKey("aws.queue.url"), |
| 388 | + "http://localhost:" + sqsPort + "/000000000000/testSdkSqs"), |
| 389 | + equalTo(SemanticAttributes.RPC_SYSTEM, "aws-api"), |
| 390 | + equalTo(SemanticAttributes.RPC_SERVICE, "AmazonSQS"), |
| 391 | + equalTo(SemanticAttributes.RPC_METHOD, "ReceiveMessage"), |
| 392 | + equalTo(SemanticAttributes.HTTP_REQUEST_METHOD, "POST"), |
| 393 | + equalTo(SemanticAttributes.HTTP_RESPONSE_STATUS_CODE, 200), |
| 394 | + equalTo(SemanticAttributes.URL_FULL, "http://localhost:" + sqsPort), |
| 395 | + equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"), |
| 396 | + equalTo(SemanticAttributes.SERVER_PORT, sqsPort), |
| 397 | + equalTo(SemanticAttributes.MESSAGING_SYSTEM, "AmazonSQS"), |
| 398 | + equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, "testSdkSqs"), |
| 399 | + equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"), |
| 400 | + satisfies( |
| 401 | + SemanticAttributes.MESSAGING_MESSAGE_ID, |
| 402 | + val -> val.isInstanceOf(String.class)), |
| 403 | + equalTo(SemanticAttributes.NETWORK_PROTOCOL_VERSION, "1.1")); |
| 404 | + }, |
398 | 405 | span ->
|
399 | 406 | span.hasName("process child")
|
400 | 407 | .hasParent(trace.getSpan(3))
|
|
0 commit comments