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

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


The following commit(s) were added to refs/heads/main by this push:
     new 39aaa6b70f6 camel-opentelemetry: make it possible to configure 
OpenTelemetryTracingStrategy via auto-configuration (#1157)
39aaa6b70f6 is described below

commit 39aaa6b70f608c0bf8b2c7e55306ada21beefe3c
Author: John Poth <[email protected]>
AuthorDate: Fri May 31 14:49:12 2024 +0200

    camel-opentelemetry: make it possible to configure 
OpenTelemetryTracingStrategy via auto-configuration (#1157)
---
 .../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;
     }

Reply via email to