-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Labels
bugSomething isn't workingSomething isn't workingneeds triageNew issue that requires triageNew issue that requires triage
Description
Describe the bug
I want to add opentelemetry-spring-boot-starter to my Spring Boot 3.4.4 application. I have added the dependency management section:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom</artifactId>
<version>2.14.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
And the dependency:
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
When I try to start my application, I get a ClassNotFoundException.
Relevant part of the stacktrace:
Caused by: java.lang.NoClassDefFoundError: io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientMetrics
at io.opentelemetry.instrumentation.jdbc.internal.JdbcInstrumenterFactory.createStatementInstrumenter(JdbcInstrumenterFactory.java:56)
at io.opentelemetry.instrumentation.jdbc.datasource.JdbcTelemetryBuilder.build(JdbcTelemetryBuilder.java:50)
at io.opentelemetry.instrumentation.spring.autoconfigure.internal.instrumentation.jdbc.DataSourcePostProcessor.postProcessAfterInitialization(DataSourcePostProcessor.java:58)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:439)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601)
... 34 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientMetrics
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 40 common frames omitted
As a workaround, I can add this dependency:
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-api-incubator</artifactId>
<version>2.14.0-alpha</version>
</dependency>
After that, things work.
Steps to reproduce
See description.
Expected behavior
I would expect the extra dependency to not be needed.
Actual behavior
The extra dependency is needed
Javaagent or library instrumentation version
2.14.0
Environment
JDK: 21
OS: macOS
Additional context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingneeds triageNew issue that requires triageNew issue that requires triage