-
Notifications
You must be signed in to change notification settings - Fork 33
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
Manage dependency on grpc-netty-shaded #39
Comments
The exception is coming from here (the component that uses grpc):
It's @jkwatson What do you think? |
It's compile-only in otel because we don't want to dictate the transport that the user might want to use for grpc. I suggest, if sleuth wants to be opinionated, to include the netty-shaded transport dependency. Be prepared for users running into dependency conflicts, though, since that is very common with grpc users from what I've seen. |
So if I put Sleuth aside and just use OTel exporter alone, this means that the exporter is not usable out of the box, you need to go the extra mile, right? Do the other exporters work out of the box or do they need extra dependencies? |
As the error log says,
the user has a choice of which dependencies to add. I think it's okay to add the dependency if documented. |
We've been leaving the decision of specific dependencies to particular opentelemetry distributions (for example, the auto-instrumentation agent, or various vendor-customized distributions thereof). Any grpc-based exporter has this same issue...you need to provide a specific transport mechanism of your own in order for it to work. If you think this decision is wrong, please open an issue/discussion in opentelemetry-java so it can be discussed more widely. |
FYI, I chatted with @anuraaga about this last week and we both agree that this is something for distributions (like spring-cloud-sleuth-otel) to manage, rather than have the SDK include by default. I'll defer any other discussion to the opened issue. |
@jkwatson I understand that you don't want to include the client. What I don't understand is why? It seems that other exporter modules include a client. Do you happen to know why are they different? |
Let's please discuss this on the issue you opened, so the other maintainers have visibility into it. |
There not being a default client and that being a bad user experience aside, why is it the responsibility of Sleuth to know what version of grpc etc work with the OTel library? Shouldn't OTel define in its BOM what versions work with it? |
There are many grpc transport implementations, and we want the user to choose what they want to use. Again, please comment on the issue that @jonatan-ivanov opened. This is not the place to debate this. |
fyi: it seems okhttp is the default client lib for exporters now: open-telemetry/opentelemetry-java#3785
see: open-telemetry/opentelemetry-java#3786 I think after this is released and Sleuth-OTel is updated, we can close this issue since the users don't need should not need to do anything by default and they can replace the client lib by managing their dependencies. |
I think this should be fixed (see previous comment), also Sleuth reached the end of its OSS support timeline. We encourage to migrate to Micrometer Tracing. |
Is your feature request related to a problem? Please describe.
I'm using
spring-cloud-sleuth-otel-autoconfigure-1.0.0-20210328.215254-111.jar:1.0.0-SNAPSHOT
.If
io.opentelemetry:opentelemetry-exporter-otlp
is used as documented, the app fails to run with the following exceptionAdding the dependency bellow solves this problem.
Describe the solution you'd like
Manage
grpc-netty-shaded
inspring-cloud-sleuth-otel-dependencies
.I'm not sure if otel itself should manage this dependency instead of sleuth.
Describe alternatives you've considered
Just mention it in the doc
The text was updated successfully, but these errors were encountered: