-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider making OpenTelemetry Bridge implementation agnostic #968
Comments
Doesn't the Datadog Agent use the OTel SDK too? IIRC, there is no separate OTel SDK by Datadog, the agent uses the same (shadowed? or already available) SDK. Can you confirm this? What happens when you want to use the OTel API+SDK (no Spring, no Micrometer Tracing) in your codebase (compile time + runtime), will the Datadog agent bring in another version of the OTel SDK? I think it should not. If my assumptions are correct (the Datadog agent uses the same OTel SDK), I think you might have a split-brain problem introduced by the Datadog agent and moving SDK-related code out of the OTel bridge or disabling auto-configuration won't solve it. Here’s what I think is happening: How to fix it: Does this help? |
Doesn't seem to be the case. There is only one usage of About the rest, that is a lot and will take me some time to unpack. I will report back if there is anything relevant for my use case |
You might be looking at the wrong thing, the OTel SDK should be used through the OTel API, try to search for |
This doesn't make sense, of course API will be used because they implement it
Why? datadog existed way before opentelemetry, they just need a wrapper around their api and this is what I linked in the previous comment |
Currently
micrometer-tracing-bridge-otel
depends on OpenTelemetry API as well as its implementation OpenTelemetry SKD. Also currently Spring Boot has Autoconfiguration of OpenTelemetry SDK when it is present.There are cases where you want to use OpenTelemetry API with different implementation, in our case, one provided by DataDog Java Agent. Having multiple implementations on classpath is problematic for various reasons. The only 2 ways to disable auto configuration is by using
spring.autoconfigure.exclude
(which can't be used if you define configuration in library) or by removing OpenTelemetry SDK dependency completely. Thankfully second way currently works but feels hacky and is prone to breakage.Therefore my request is to consider splitting SDK related code into a separate package
The text was updated successfully, but these errors were encountered: