You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by jp...@apache.org on 2024/05/31 09:47:41 UTC

(camel-spring-boot) 01/01: camel-opentelemetry: make it possible to configure OpenTelemetryTracingStrategy via auto-configuration

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

jpoth pushed a commit to branch config
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 216477c716c88fa154a77519bfbf553b4413dbb8
Author: John Poth <po...@gmail.com>
AuthorDate: Thu May 30 17:19:51 2024 +0200

    camel-opentelemetry: make it possible to configure OpenTelemetryTracingStrategy via auto-configuration
---
 .../src/main/docs/opentelemetry.json                       |  6 ++++++
 .../starter/OpenTelemetryAutoConfiguration.java            |  6 ++++++
 .../starter/OpenTelemetryConfigurationProperties.java      | 14 ++++++++++++++
 3 files changed, 26 insertions(+)

diff --git a/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json b/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json
index bf4fe3c046c..d5e49124dba 100644
--- a/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json
+++ b/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json
@@ -25,6 +25,12 @@
       "type": "java.lang.String",
       "description": "Sets exclude pattern(s) that will disable tracing for Camel messages that matches the pattern. Multiple patterns can be separated by comma.",
       "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    },
+    {
+      "name": "camel.opentelemetry.trace-processors",
+      "type": "java.lang.Boolean",
+      "description": "Setting this to true will create new OpenTelemetry Spans for each Camel Processors. Use the excludePattern property to filter out Processors.",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
     }
   ],
   "hints": []
diff --git a/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryAutoConfiguration.java b/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryAutoConfiguration.java
index 34022047660..629beb56b8d 100644
--- a/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryAutoConfiguration.java
+++ b/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryAutoConfiguration.java
@@ -20,6 +20,7 @@ import io.opentelemetry.api.trace.Tracer;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import org.apache.camel.CamelContext;
 import org.apache.camel.opentelemetry.OpenTelemetryTracer;
+import org.apache.camel.opentelemetry.OpenTelemetryTracingStrategy;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -56,6 +57,11 @@ public class OpenTelemetryAutoConfiguration {
         if (config.getEncoding() != null) {
             ottracer.setEncoding(config.getEncoding().booleanValue());
         }
+        if (config.getTraceProcessors() != null && config.getTraceProcessors()) {
+            OpenTelemetryTracingStrategy tracingStrategy = new OpenTelemetryTracingStrategy(ottracer);
+            tracingStrategy.setPropagateContext(true);
+            ottracer.setTracingStrategy(tracingStrategy);
+        }
         ottracer.init(camelContext);
 
         return ottracer;
diff --git a/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryConfigurationProperties.java b/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryConfigurationProperties.java
index 7a903a58607..98ded3ddf98 100644
--- a/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryConfigurationProperties.java
+++ b/components-starter/camel-opentelemetry-starter/src/main/java/org/apache/camel/opentelemetry/starter/OpenTelemetryConfigurationProperties.java
@@ -35,6 +35,20 @@ public class OpenTelemetryConfigurationProperties {
      */
     private Boolean encoding;
 
+    /**
+     * Setting this to true will create new OpenTelemetry Spans for each Camel Processors. Use the excludePattern
+     * property to filter out Processors.
+     */
+    private Boolean traceProcessors;
+
+    public Boolean getTraceProcessors() {
+        return traceProcessors;
+    }
+
+    public void setTraceProcessors(Boolean traceProcessors) {
+        this.traceProcessors = traceProcessors;
+    }
+
     public boolean isEnabled() {
         return enabled;
     }