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;
}