Bjorn Beskow created CAMEL-23343:
------------------------------------
Summary: Using OpenTelemetry instrumentation via Spring Boot
starter and OpenTelemetry2
Key: CAMEL-23343
URL: https://issues.apache.org/jira/browse/CAMEL-23343
Project: Camel
Issue Type: Improvement
Components: camel-opentelemetry
Affects Versions: 4.18.1
Reporter: Bjorn Beskow
Attachments: camel-opentelemetry-starter.zip
Using OpenTelemetry instrumentation via the OTEL spring boot starter together
with {{camel-opentelemetry2}} is not well document, and does not work out of
the box. The auto-configuration provided by
{{io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter}} doesn't
configure all beans required by camel-opentelemetry2 to be fully functional:
1. A bean for {{io.opentelemetry.api.trace.Tracer}} is missing, which cause
{{trace_id}} and {{span_id}} to not be visible in the MDC context used by
{{io.opentelemetry.instrumentation:opentelemetry-logback-mdc-1.0}}
2. A bean for {{io.opentelemetry.context.propagation.ContextPropagators}} is
missing, which cause a NOOP propagator being used and hence no propagation
happens for the camel routes
Configuring the beans explicitly solves these problems:
{{@Configuration}}
{{public class OpenTelemetryConfiguration {}}
{{ @Bean}}
{{ public Tracer tracer(
@Value("${spring.application.name}") String serviceName,
OpenTelemetry openTelemetry) {}}
{{ return openTelemetry.getTracer(serviceName);}}
{{ }}}
{{ @Bean}}
{{ public ContextPropagators contextPropagators(
OpenTelemetry openTelemetry) {}}
{{ return openTelemetry.getPropagators();}}
{{ }}}
{{}}}
Attached is a sample project with a single JMS route and integration tests
which highlight the problem (comment out the {{@Configuration}} annotation in
{{OpenTelemetryConfiguration }}to make the tests fail).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)