This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 9dadd58319 Disable internal HTTP client tracing for vertx-http
9dadd58319 is described below

commit 9dadd58319f981bd563505cc6ce8e242cb832681
Author: James Netherton <[email protected]>
AuthorDate: Wed Feb 25 16:41:14 2026 +0000

    Disable internal HTTP client tracing for vertx-http
---
 .../vertx/http/CamelVertxHttpRecorder.java         |  2 +
 integration-tests/opentelemetry/pom.xml            | 17 +++++
 .../it/OpenTelemetryRouteBuilder.java              | 17 ++++-
 .../opentelemetry/it/OpenTelemetryTest.java        | 11 +++-
 integration-tests/opentelemetry2/pom.xml           | 17 +++++
 .../it/OpenTelemetry2RouteBuilder.java             | 17 ++++-
 .../src/main/resources/application.properties      |  3 +
 .../it/OpenTelemetry2TestHelper.java               | 75 +++++++++++++++++++++-
 .../opentelemetry2/it/Opentelemetry2Test.java      | 11 +++-
 9 files changed, 159 insertions(+), 11 deletions(-)

diff --git 
a/extensions/vertx-http/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/http/CamelVertxHttpRecorder.java
 
b/extensions/vertx-http/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/http/CamelVertxHttpRecorder.java
index 23151344aa..d51e93cb23 100644
--- 
a/extensions/vertx-http/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/http/CamelVertxHttpRecorder.java
+++ 
b/extensions/vertx-http/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/http/CamelVertxHttpRecorder.java
@@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.vertx.http;
 import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
 import io.vertx.core.Vertx;
+import io.vertx.core.tracing.TracingPolicy;
 import org.apache.camel.component.vertx.http.VertxHttpComponent;
 
 @Recorder
@@ -27,6 +28,7 @@ public class CamelVertxHttpRecorder {
     public RuntimeValue<?> createVertxHttpComponent(RuntimeValue<Vertx> vertx) 
{
         VertxHttpComponent component = new VertxHttpComponent();
         component.setVertx(vertx.getValue());
+        component.setTracingPolicy(TracingPolicy.IGNORE);
         return new RuntimeValue<>(component);
     }
 }
diff --git a/integration-tests/opentelemetry/pom.xml 
b/integration-tests/opentelemetry/pom.xml
index aef9faaf50..f63ff9b2bb 100644
--- a/integration-tests/opentelemetry/pom.xml
+++ b/integration-tests/opentelemetry/pom.xml
@@ -64,6 +64,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-http</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-vertx-http</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
@@ -222,6 +226,19 @@
                         </exclusion>
                     </exclusions>
                 </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    
<artifactId>camel-quarkus-vertx-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
             </dependencies>
         </profile>
         <profile>
diff --git 
a/integration-tests/opentelemetry/src/main/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryRouteBuilder.java
 
b/integration-tests/opentelemetry/src/main/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryRouteBuilder.java
index a389bd974e..b537d1b154 100644
--- 
a/integration-tests/opentelemetry/src/main/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryRouteBuilder.java
+++ 
b/integration-tests/opentelemetry/src/main/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryRouteBuilder.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.opentelemetry.it;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 
 public class OpenTelemetryRouteBuilder extends RouteBuilder {
@@ -43,9 +44,21 @@ public class OpenTelemetryRouteBuilder extends RouteBuilder {
                 .to("bean:jdbcQueryBean");
 
         from("platform-http:/greeting")
-                .log("Received at greeting: ${body}")
+                .log("Received /greeting request for component 
${header.httpComponent}")
+                .process(new Processor() {
+                    @Override
+                    public void process(Exchange exchange) {
+                        String baseUrl = "http://localhost";;
+                        String httpComponent = 
exchange.getMessage().getHeader("httpComponent", String.class);
+                        if (httpComponent.equals("http")) {
+                            exchange.setVariable("httpUriPrefix", baseUrl);
+                        } else {
+                            exchange.setVariable("httpUriPrefix", 
httpComponent + ":" + baseUrl);
+                        }
+                    }
+                })
                 .removeHeaders("*")
-                
.to("http://localhost:{{quarkus.http.test-port}}/greeting-provider";);
+                
.toD("${variable.httpUriPrefix}:{{quarkus.http.test-port}}/greeting-provider");
 
         from("platform-http:/greeting-provider")
                 .log("Received at greeting-provider: ${body}")
diff --git 
a/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryTest.java
 
b/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryTest.java
index d3dde49388..5954c2c267 100644
--- 
a/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryTest.java
+++ 
b/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryTest.java
@@ -25,6 +25,8 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
 import static 
io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
 import static 
org.apache.camel.quarkus.component.opentelemetry.it.OpenTelemetryTestHelper.getSpans;
@@ -145,9 +147,12 @@ class OpenTelemetryTest {
                 
"org.apache.camel.quarkus.component.opentelemetry.it.OpenTelemetryResource.jdbcQuery");
     }
 
-    @Test
-    public void testHttpInvocation() {
-        RestAssured.get("/greeting")
+    @ParameterizedTest
+    @ValueSource(strings = { "http", "vertx-http" })
+    public void testHttpInvocation(String httpComponent) {
+        RestAssured.given()
+                .queryParam("httpComponent", httpComponent)
+                .get("/greeting")
                 .then()
                 .statusCode(200)
                 .body(equalTo("Hello From Camel Quarkus!"));
diff --git a/integration-tests/opentelemetry2/pom.xml 
b/integration-tests/opentelemetry2/pom.xml
index 8e5dfc249c..e4a81e2eb1 100644
--- a/integration-tests/opentelemetry2/pom.xml
+++ b/integration-tests/opentelemetry2/pom.xml
@@ -68,6 +68,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-http</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-vertx-http</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
@@ -235,6 +239,19 @@
                         </exclusion>
                     </exclusions>
                 </dependency>
+                <dependency>
+                    <groupId>org.apache.camel.quarkus</groupId>
+                    
<artifactId>camel-quarkus-vertx-http-deployment</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <scope>test</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>*</groupId>
+                            <artifactId>*</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
             </dependencies>
         </profile>
         <profile>
diff --git 
a/integration-tests/opentelemetry2/src/main/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2RouteBuilder.java
 
b/integration-tests/opentelemetry2/src/main/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2RouteBuilder.java
index 3c60cabadc..17169f11e4 100644
--- 
a/integration-tests/opentelemetry2/src/main/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2RouteBuilder.java
+++ 
b/integration-tests/opentelemetry2/src/main/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2RouteBuilder.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.opentelemetry2.it;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 
 public class OpenTelemetry2RouteBuilder extends RouteBuilder {
@@ -46,9 +47,21 @@ public class OpenTelemetry2RouteBuilder extends RouteBuilder 
{
                 .log("Trace info: CAMEL_SPAN_ID=${header.CAMEL_SPAN_ID}, 
CAMEL_TRACE_ID=${header.CAMEL_TRACE_ID}");
 
         from("platform-http:/greeting")
-                .log("Received at greeting: ${body}")
+                .log("Received /greeting request for component 
${header.httpComponent}")
+                .process(new Processor() {
+                    @Override
+                    public void process(Exchange exchange) {
+                        String baseUrl = "http://localhost";;
+                        String httpComponent = 
exchange.getMessage().getHeader("httpComponent", String.class);
+                        if (httpComponent.equals("http")) {
+                            exchange.setVariable("httpUriPrefix", baseUrl);
+                        } else {
+                            exchange.setVariable("httpUriPrefix", 
httpComponent + ":" + baseUrl);
+                        }
+                    }
+                })
                 .removeHeaders("*")
-                
.to("http://localhost:{{quarkus.http.test-port}}/greeting-provider";);
+                
.toD("${variable.httpUriPrefix}:{{quarkus.http.test-port}}/greeting-provider");
 
         from("platform-http:/greeting-provider")
                 .log("Received at greeting-provider: ${body}")
diff --git 
a/integration-tests/opentelemetry2/src/main/resources/application.properties 
b/integration-tests/opentelemetry2/src/main/resources/application.properties
index ae57815127..b82cd873c8 100644
--- a/integration-tests/opentelemetry2/src/main/resources/application.properties
+++ b/integration-tests/opentelemetry2/src/main/resources/application.properties
@@ -21,3 +21,6 @@ quarkus.otel.bsp.export.timeout=5s
 quarkus.datasource.db-kind=postgresql
 quarkus.datasource.jdbc.telemetry=true
 quarkus.datasource.devservices.image-name=${postgres.container.image}
+
+# To reduce console log verbosity set to false
+debug.span.hierarchy.enabled=true
diff --git 
a/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2TestHelper.java
 
b/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2TestHelper.java
index 05fab0d6ac..d822c26a70 100644
--- 
a/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2TestHelper.java
+++ 
b/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/OpenTelemetry2TestHelper.java
@@ -16,18 +16,28 @@
  */
 package org.apache.camel.quarkus.component.opentelemetry2.it;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import io.restassured.RestAssured;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.jboss.logging.Logger;
 
 class OpenTelemetry2TestHelper {
+    private static final Logger LOG = 
Logger.getLogger(OpenTelemetry2TestHelper.class);
+    private static final boolean DEBUG_SPAN_HIERARCHY = 
ConfigProvider.getConfig().getValue("debug.span.hierarchy.enabled",
+            boolean.class);
+
     private OpenTelemetry2TestHelper() {
         // Utility class
     }
 
     static List<Map<String, String>> getSpans() {
-        return RestAssured.given()
+        List<Map<String, String>> spans = RestAssured.given()
                 .get("/opentelemetry2/exporter/spans")
                 .then()
                 .statusCode(200)
@@ -35,5 +45,68 @@ class OpenTelemetry2TestHelper {
                 .body()
                 .jsonPath()
                 .get();
+
+        if (DEBUG_SPAN_HIERARCHY) {
+            printSpanHierarchy(spans);
+        }
+
+        return spans;
+    }
+
+    public static void printSpanHierarchy(List<Map<String, String>> spans) {
+        if (spans.isEmpty()) {
+            return;
+        }
+
+        Map<String, List<Map<String, String>>> spansByTraceId = spans.stream()
+                .collect(Collectors.groupingBy(span -> span.get("traceId")));
+
+        for (Map.Entry<String, List<Map<String, String>>> entry : 
spansByTraceId.entrySet()) {
+            LOG.infof("Trace ID: %s", entry.getKey());
+            printTraceHierarchy(entry.getValue());
+        }
+    }
+
+    private static void printTraceHierarchy(List<Map<String, String>> spans) {
+        Map<String, List<Map<String, String>>> childrenByParentId = new 
HashMap<>();
+        Set<String> spanIds = spans.stream().map(span -> 
span.get("spanId")).collect(Collectors.toSet());
+
+        for (Map<String, String> span : spans) {
+            String parentId = span.get("parentId");
+            childrenByParentId.computeIfAbsent(parentId, k -> new 
ArrayList<>()).add(span);
+        }
+
+        List<Map<String, String>> rootSpans = spans.stream()
+                .filter(span -> !spanIds.contains(span.get("parentId")))
+                .toList();
+
+        for (Map<String, String> rootSpan : rootSpans) {
+            printSpan(rootSpan, childrenByParentId, "");
+        }
+    }
+
+    private static void printSpan(Map<String, String> span, Map<String, 
List<Map<String, String>>> childrenByParentId,
+            String indent) {
+        LOG.infof("%s- %s", indent, spanToString(span));
+
+        List<Map<String, String>> children = 
childrenByParentId.get(span.get("spanId"));
+        if (children != null) {
+            for (Map<String, String> child : children) {
+                printSpan(child, childrenByParentId, indent + "  ");
+            }
+        }
+    }
+
+    private static String spanToString(Map<String, String> span) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("spanId=").append(span.get("spanId"));
+        sb.append(", parentId=").append(span.get("parentId"));
+        sb.append(", kind=").append(span.get("kind"));
+
+        span.entrySet().stream()
+                .filter(entry -> !Set.of("traceId", "spanId", "parentId", 
"kind").contains(entry.getKey()))
+                .forEach(entry -> sb.append(", 
").append(entry.getKey()).append("=").append(entry.getValue()));
+
+        return sb.toString();
     }
 }
diff --git 
a/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/Opentelemetry2Test.java
 
b/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/Opentelemetry2Test.java
index 28f978b7b3..c17b7c8b8f 100644
--- 
a/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/Opentelemetry2Test.java
+++ 
b/integration-tests/opentelemetry2/src/test/java/org/apache/camel/quarkus/component/opentelemetry2/it/Opentelemetry2Test.java
@@ -25,6 +25,8 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
 import static 
io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION_NAME;
 import static 
org.apache.camel.quarkus.component.opentelemetry2.it.OpenTelemetry2TestHelper.getSpans;
@@ -170,9 +172,12 @@ class Opentelemetry2Test {
                 .header("traceId", not(emptyOrNullString()));
     }
 
-    @Test
-    public void testHttpInvocation() {
-        RestAssured.get("/greeting")
+    @ParameterizedTest
+    @ValueSource(strings = { "http", "vertx-http" })
+    void testHttpInvocation(String httpComponent) {
+        RestAssured.given()
+                .queryParam("httpComponent", httpComponent)
+                .get("/greeting")
                 .then()
                 .statusCode(200)
                 .body(equalTo("Hello From Camel Quarkus!"));

Reply via email to