From f61b02f043fcda91390fac07d0b66ad625306a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Vav=C5=99=C3=ADk?= Date: Sat, 23 Mar 2024 20:57:45 +0100 Subject: [PATCH] Fix OpenTelemetry REST client operation names --- .../reactive/OpentelemetryReactiveIT.java | 8 +++++++- .../io/quarkus/ts/opentelemetry/OpenTelemetryIT.java | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/monitoring/opentelemetry-reactive/src/test/java/io/quarkus/ts/opentelemetry/reactive/OpentelemetryReactiveIT.java b/monitoring/opentelemetry-reactive/src/test/java/io/quarkus/ts/opentelemetry/reactive/OpentelemetryReactiveIT.java index 9d66879d7..ae0b1074a 100644 --- a/monitoring/opentelemetry-reactive/src/test/java/io/quarkus/ts/opentelemetry/reactive/OpentelemetryReactiveIT.java +++ b/monitoring/opentelemetry-reactive/src/test/java/io/quarkus/ts/opentelemetry/reactive/OpentelemetryReactiveIT.java @@ -9,6 +9,7 @@ import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase; import java.time.Duration; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; import org.apache.http.HttpStatus; @@ -53,7 +54,7 @@ public class OpentelemetryReactiveIT { public void testContextPropagation() { int pageLimit = 10; String operationName = "GET /ping/pong"; - String[] operations = new String[] { "GET /ping/pong", "GET", "GET /hello" }; + String[] operations = new String[] { "GET /ping/pong", "GET /hello", "GET /hello" }; await().atMost(1, TimeUnit.MINUTES).pollInterval(Duration.ofSeconds(1)).untilAsserted(() -> { whenDoPingPongRequest(); @@ -61,6 +62,11 @@ public void testContextPropagation() { thenTriggeredOperationsMustBe(containsInAnyOrder(operations)); thenTraceSpanSizeMustBe(is(3)); // 2 endpoint's + rest client call verifyStandardSourceCodeAttributesArePresent(operationName); + ArrayList spanKinds = resp.body().path( + "data[0].spans.findAll { it.operationName == '%s' }.tags.flatten().findAll { it.key == 'span.kind' }.value.flatten()", + "GET /hello"); + Assertions.assertTrue(spanKinds.contains("client")); + Assertions.assertTrue(spanKinds.contains("server")); }); } diff --git a/monitoring/opentelemetry/src/test/java/io/quarkus/ts/opentelemetry/OpenTelemetryIT.java b/monitoring/opentelemetry/src/test/java/io/quarkus/ts/opentelemetry/OpenTelemetryIT.java index 7177126a8..7af97bd66 100644 --- a/monitoring/opentelemetry/src/test/java/io/quarkus/ts/opentelemetry/OpenTelemetryIT.java +++ b/monitoring/opentelemetry/src/test/java/io/quarkus/ts/opentelemetry/OpenTelemetryIT.java @@ -12,6 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.time.Duration; +import java.util.ArrayList; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -19,6 +20,7 @@ import org.apache.http.HttpStatus; import org.hamcrest.Matcher; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @@ -58,7 +60,7 @@ public class OpenTelemetryIT { public void testContextPropagation() { int pageLimit = 10; String operationName = "GET /ping/pong"; - String[] operations = new String[] { "GET /ping/pong", "GET", "GET /hello" }; + String[] operations = new String[] { "GET /ping/pong", "GET /hello", "GET /hello" }; await().atMost(1, TimeUnit.MINUTES).pollInterval(Duration.ofSeconds(1)).untilAsserted(() -> { whenDoPingPongRequest(); @@ -66,6 +68,12 @@ public void testContextPropagation() { thenTriggeredOperationsMustBe(containsInAnyOrder(operations)); thenTraceSpanSizeMustBe(is(3)); // 2 endpoint's + rest client call verifyStandardSourceCodeAttributesArePresent(operationName); + + ArrayList spanKinds = resp.body().path( + "data[0].spans.findAll { it.operationName == '%s' }.tags.flatten().findAll { it.key == 'span.kind' }.value.flatten()", + "GET /hello"); + Assertions.assertTrue(spanKinds.contains("client")); + Assertions.assertTrue(spanKinds.contains("server")); }); }