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