diff --git a/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java b/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java index 722489baf74a..fac9b32cc60d 100644 --- a/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java +++ b/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java @@ -127,6 +127,7 @@ class ITOtelTracing { private static final String VALUE_SERVICE_UNAVAILABLE = "Service Unavailable"; private static final String SPAN_NAME_ECHO_GRPC = "google.showcase.v1beta1.Echo/Echo"; private static final String SPAN_NAME_ECHO_HTTP = "POST v1beta1/echo:echo"; + private static final String SPAN_NAME_OPERATION_ECHO = "google.showcase.v1beta1.Echo.Echo"; private static final String SPAN_NAME_GET_USER_GRPC = "google.showcase.v1beta1.Identity/GetUser"; private static final String SPAN_NAME_GET_USER_HTTP = "GET v1beta1/{name=users/*}"; @@ -501,8 +502,8 @@ void testTracing_retry_grpc_linkedToParentContext() throws Exception { parentSpan.end(); } - List spans = spanExporter.getFinishedSpanItems(); - assertThat(spans).hasSize(attempts + 1); + List spans = waitForSpans(attempts + 2); + assertThat(spans).hasSize(attempts + 2); SpanData rootSpan = spans.stream() @@ -510,6 +511,16 @@ void testTracing_retry_grpc_linkedToParentContext() throws Exception { .findFirst() .orElseThrow(() -> new AssertionError("Parent span not found")); + SpanData operationSpan = + spans.stream() + .filter(span -> span.getName().equals(SPAN_NAME_OPERATION_ECHO)) + .findFirst() + .orElseThrow(() -> new AssertionError("Operation span not found")); + assertThat(operationSpan.getKind()).isEqualTo(SpanKind.INTERNAL); + assertThat(operationSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId()); + assertThat(operationSpan.getSpanContext().getTraceId()) + .isEqualTo(rootSpan.getSpanContext().getTraceId()); + List attemptSpans = spans.stream() .filter(span -> span.getName().equals(SPAN_NAME_ECHO_GRPC)) @@ -518,7 +529,8 @@ void testTracing_retry_grpc_linkedToParentContext() throws Exception { for (SpanData attemptSpan : attemptSpans) { assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT); - assertThat(attemptSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId()); + assertThat(attemptSpan.getParentSpanId()) + .isEqualTo(operationSpan.getSpanContext().getSpanId()); assertThat(attemptSpan.getSpanContext().getTraceId()) .isEqualTo(rootSpan.getSpanContext().getTraceId()); } @@ -642,8 +654,8 @@ void testTracing_retry_httpjson_linkedToParentContext() throws Exception { parentSpan.end(); } - List spans = spanExporter.getFinishedSpanItems(); - assertThat(spans).hasSize(attempts + 1); + List spans = waitForSpans(attempts + 2); + assertThat(spans).hasSize(attempts + 2); SpanData rootSpan = spans.stream() @@ -651,6 +663,16 @@ void testTracing_retry_httpjson_linkedToParentContext() throws Exception { .findFirst() .orElseThrow(() -> new AssertionError("Parent span not found")); + SpanData operationSpan = + spans.stream() + .filter(span -> span.getName().equals(SPAN_NAME_OPERATION_ECHO)) + .findFirst() + .orElseThrow(() -> new AssertionError("Operation span not found")); + assertThat(operationSpan.getKind()).isEqualTo(SpanKind.INTERNAL); + assertThat(operationSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId()); + assertThat(operationSpan.getSpanContext().getTraceId()) + .isEqualTo(rootSpan.getSpanContext().getTraceId()); + List attemptSpans = spans.stream() .filter(span -> span.getName().equals(SPAN_NAME_ECHO_HTTP)) @@ -659,7 +681,8 @@ void testTracing_retry_httpjson_linkedToParentContext() throws Exception { for (SpanData attemptSpan : attemptSpans) { assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT); - assertThat(attemptSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId()); + assertThat(attemptSpan.getParentSpanId()) + .isEqualTo(operationSpan.getSpanContext().getSpanId()); assertThat(attemptSpan.getSpanContext().getTraceId()) .isEqualTo(rootSpan.getSpanContext().getTraceId()); }