aka-peter opened a new issue, #6814:
URL: https://github.com/apache/camel-quarkus/issues/6814
### Bug description
Camel OpenTelemetry seems to be enabled even if
quarkus.otel.sdk.disabled=true.
Log line:
```
2024-11-21 16:31:53,659 INFO [org.apa.cam.ope.OpenTelemetryTracer] (Quarkus
Main Thread) OpenTelemetryTracer enabled using instrumentation-name: camel
```
This triggers a problem for the configuration below where there are issues
with `GlobalOpenTelemetry.set` being called although it should be disabled. No
problems with otel sdk enabled (or mongodb tracing disabled).
```
quarkus create app
--extension=quarkus-config-yaml,camel-quarkus-scheduler,camel-quarkus-direct,camel-quarkus-opentelemetry,camel-quarkus-mongodb
&& cd code-with-quarkus
cat <<EOF >> src/main/resources/application.yml
quarkus:
otel:
sdk:
disabled: true
traces:
enabled: true
metrics:
enabled: true
logs:
enabled: true
mongodb:
metrics:
enabled: true
tracing:
enabled: true
EOF
cat <<EOF > src/main/java/org/acme/GreetingApp.java
package org.acme;
import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
import org.apache.camel.component.mongodb.MongoDbOperation;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class GreetingApp extends EndpointRouteBuilder {
@Override
public void configure() throws Exception {
from(scheduler("repeat").delay(5000).repeatCount(1000).includeMetadata(true))
.log("\${headers}").to(direct("count"));
from(direct("count")).to(
mongodb("mongoClient").database("mydb").collection("mycoll").operation(MongoDbOperation.count))
.log("\${body}");
}
}
EOF
quarkus dev
```
Log:
```
2024-11-21 16:31:53,536 INFO [org.apa.cam.qua.cor.CamelBootstrapRecorder]
(Quarkus Main Thread) Apache Camel Quarkus 3.16.0 is starting
2024-11-21 16:31:53,536 INFO [org.apa.cam.mai.MainSupport] (Quarkus Main
Thread) Apache Camel (Main) 4.8.1 is starting
2024-11-21 16:31:53,540 INFO [org.apa.cam.mai.ProfileConfigurer] (Quarkus
Main Thread) The application is starting with profile: dev
2024-11-21 16:31:53,648 INFO [io.ope.api.GlobalOpenTelemetry] (Quarkus Main
Thread) AutoConfiguredOpenTelemetrySdk found on classpath but automatic
configuration is disabled. To enable, run your JVM with
-Dotel.java.global-autoconfigure.enabled=true
(com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_ClientProxy)
found in the registry
2024-11-21 16:31:53,652 INFO [org.apa.cam.sup.LifecycleStrategySupport]
(Quarkus Main Thread) Autowired property: mongoConnection on component: mongodb
as exactly one instance of type: com.mongodb.client.MongoClient
(com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_ClientProxy)
found in the registry
2024-11-21 16:31:53,657 INFO [org.apa.cam.imp.eng.AbstractCamelContext]
(Quarkus Main Thread) Apache Camel 4.8.1 (camel-1) is starting
2024-11-21 16:31:53,659 INFO [org.apa.cam.ope.OpenTelemetryTracer] (Quarkus
Main Thread) OpenTelemetryTracer enabled using instrumentation-name: camel
2024-11-21 16:31:53,659 INFO [org.apa.cam.imp.eng.AbstractCamelContext]
(Quarkus Main Thread) Using ThreadPoolFactory:
org.apache.camel.quarkus.component.opentelemetry.patch.OpenTelemetryInstrumentedThreadPoolFactory@2c0bf219
2024-11-21
2024-11-21 16:31:53,660 INFO [org.apa.cam.com.mon.MongoDbEndpoint] (Quarkus
Main Thread) Initialising MongoDb endpoint:
mongodb://mongoClient?collection=mycoll&database=mydb&operation=count
2024-11-21 16:31:53,695 INFO
[io.ope.sdk.aut.AutoConfiguredOpenTelemetrySdkBuilder] (Quarkus Main Thread)
Error encountered during autoconfiguration. Closing partially configured
components.
2024-11-21 16:31:53,695 ERROR [org.apa.cam.imp.eng.AbstractCamelContext]
(Quarkus Main Thread) Error starting CamelContext (camel-1) due to exception
thrown: Failed to start route route2 because of
jakarta.enterprise.inject.CreationException: Error creating synthetic bean
[h1_G0-d2ADp3y2Tmh2-WKjUlre0]: jakarta.enterprise.inject.CreationException:
Error creating synthetic bean [Le6zQbzkojAYO_OiKIQWJf4lGa4]:
io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException: Unexpected
configuration error: org.apache.camel.FailedToStartRouteException: Failed to
start route route2 because of jakarta.enterprise.inject.CreationException:
Error creating synthetic bean [h1_G0-d2ADp3y2Tmh2-WKjUlre0]:
jakarta.enterprise.inject.CreationException: Error creating synthetic bean
[Le6zQbzkojAYO_OiKIQWJf4lGa4]:
io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException: Unexpected
configuration error
at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:125)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:327)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:198)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:132)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2898)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2528)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2483)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2087)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:91)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:137)
at
org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
at
org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
at
io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown
Source)
at
io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown
Source)
at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
at io.quarkus.runtime.Application.start(Application.java:101)
at
io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:121)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at
io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:116)
at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: org.apache.camel.RuntimeCamelException:
jakarta.enterprise.inject.CreationException: Error creating synthetic bean
[h1_G0-d2ADp3y2Tmh2-WKjUlre0]: jakarta.enterprise.inject.CreationException:
Error creating synthetic bean [Le6zQbzkojAYO_OiKIQWJf4lGa4]:
io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException: Unexpected
configuration error
at
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:53)
at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:68)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
at
org.apache.camel.impl.engine.DefaultChannel.doStart(DefaultChannel.java:130)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:139)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:115)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
at org.apache.camel.processor.Pipeline.doStart(Pipeline.java:205)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
at
org.apache.camel.support.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:89)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
at
org.apache.camel.impl.engine.RouteService.startChildServices(RouteService.java:408)
at
org.apache.camel.impl.engine.RouteService.doWarmUp(RouteService.java:202)
at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:123)
... 27 more
Caused by: jakarta.enterprise.inject.CreationException: Error creating
synthetic bean [h1_G0-d2ADp3y2Tmh2-WKjUlre0]:
jakarta.enterprise.inject.CreationException: Error creating synthetic bean
[Le6zQbzkojAYO_OiKIQWJf4lGa4]:
io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException: Unexpected
configuration error
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_Bean.doCreate(Unknown
Source)
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_Bean.create(Unknown
Source)
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_Bean.create(Unknown
Source)
at
io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at
io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.c7(Unknown
Source)
at
io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.computeIfAbsent(Unknown
Source)
at
io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at
io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:21)
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_ClientProxy.arc$delegate(Unknown
Source)
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_ClientProxy.getDatabase(Unknown
Source)
at
org.apache.camel.component.mongodb.MongoDbEndpoint.initializeConnection(MongoDbEndpoint.java:343)
at
org.apache.camel.component.mongodb.MongoDbEndpoint.createProducer(MongoDbEndpoint.java:235)
at
org.apache.camel.support.DefaultEndpoint.createAsyncProducer(DefaultEndpoint.java:198)
at
org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:313)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1668)
at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:61)
... 47 more
Caused by: jakarta.enterprise.inject.CreationException: Error creating
synthetic bean [Le6zQbzkojAYO_OiKIQWJf4lGa4]:
io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException: Unexpected
configuration error
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.doCreate(Unknown
Source)
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.create(Unknown
Source)
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.create(Unknown
Source)
at
io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
at
io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
at
io.quarkus.arc.impl.ComputingCacheContextInstances.computeIfAbsent(ComputingCacheContextInstances.java:19)
at
io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.get(Unknown
Source)
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.get(Unknown
Source)
at
io.quarkus.mongodb.tracing.MongoTracingCommandListener_Bean.doCreate(Unknown
Source)
at
io.quarkus.mongodb.tracing.MongoTracingCommandListener_Bean.create(Unknown
Source)
at
io.quarkus.mongodb.tracing.MongoTracingCommandListener_Bean.create(Unknown
Source)
at
io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at
io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
at
io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
at
io.quarkus.arc.impl.ComputingCacheContextInstances.computeIfAbsent(ComputingCacheContextInstances.java:19)
at
io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at
io.quarkus.mongodb.tracing.MongoTracingCommandListener_Bean.get(Unknown Source)
at
io.quarkus.mongodb.tracing.MongoTracingCommandListener_Bean.get(Unknown Source)
at
io.quarkus.arc.impl.InstanceImpl.getBeanInstance(InstanceImpl.java:325)
at
io.quarkus.arc.impl.InstanceImpl$InstanceIterator.next(InstanceImpl.java:363)
at
io.quarkus.mongodb.runtime.MongoClients.createMongoConfiguration(MongoClients.java:285)
at
io.quarkus.mongodb.runtime.MongoClients.createMongoClient(MongoClients.java:128)
at
io.quarkus.mongodb.runtime.MongoClientRecorder.lambda$mongoClientSupplier$0(MongoClientRecorder.java:66)
at
io.quarkus.mongodb.runtime.MongoClientRecorder$MongoClientSupplier.get(MongoClientRecorder.java:60)
at io.quarkus.arc.runtime.ArcRecorder$4.apply(ArcRecorder.java:137)
at io.quarkus.arc.runtime.ArcRecorder$4.apply(ArcRecorder.java:134)
at
com.mongodb.client.MongoClient_h1_G0-d2ADp3y2Tmh2-WKjUlre0_Synthetic_Bean.createSynthetic(Unknown
Source)
... 69 more
Caused by: io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException:
Unexpected configuration error
at
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder.build(AutoConfiguredOpenTelemetrySdkBuilder.java:525)
at
io.quarkus.opentelemetry.runtime.OpenTelemetryRecorder$1.apply(OpenTelemetryRecorder.java:68)
at
io.quarkus.opentelemetry.runtime.OpenTelemetryRecorder$1.apply(OpenTelemetryRecorder.java:54)
at
io.opentelemetry.api.OpenTelemetry_Le6zQbzkojAYO_OiKIQWJf4lGa4_Synthetic_Bean.createSynthetic(Unknown
Source)
... 102 more
Caused by: java.lang.IllegalStateException: GlobalOpenTelemetry.set has
already been called. GlobalOpenTelemetry.set must be called only once before
any calls to GlobalOpenTelemetry.get. If you are using the OpenTelemetrySdk,
use OpenTelemetrySdkBuilder.buildAndRegisterGlobal instead. Previous invocation
set to cause of this exception.
at
io.opentelemetry.api.GlobalOpenTelemetry.set(GlobalOpenTelemetry.java:107)
at
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder.maybeSetAsGlobal(AutoConfiguredOpenTelemetrySdkBuilder.java:589)
at
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder.build(AutoConfiguredOpenTelemetrySdkBuilder.java:506)
... 105 more
Caused by: java.lang.Throwable
at
io.opentelemetry.api.GlobalOpenTelemetry.set(GlobalOpenTelemetry.java:115)
at
io.opentelemetry.api.GlobalOpenTelemetry.get(GlobalOpenTelemetry.java:85)
at
org.apache.camel.opentelemetry.OpenTelemetryTracer.initContextPropagators(OpenTelemetryTracer.java:136)
at org.apache.camel.tracing.Tracer.doInit(Tracer.java:174)
at
org.apache.camel.support.service.BaseService.init(BaseService.java:85)
at
org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:84)
at
org.apache.camel.impl.engine.InternalServiceManager.doAddService(InternalServiceManager.java:146)
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1364)
at org.apache.camel.tracing.Tracer.init(Tracer.java:153)
at org.apache.camel.tracing.Tracer.createRoutePolicy(Tracer.java:142)
at
org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:275)
at
org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86)
at
org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:726)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:592)
at
org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2433)
at
org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:195)
at
org.apache.camel.support.service.BaseService.init(BaseService.java:85)
at
org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2068)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:115)
... 20 more
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]