-
Notifications
You must be signed in to change notification settings - Fork 839
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
Make the exporter sender a public SPI #6718
Comments
This would be super helpful. |
I'm not comfortable making these SPIs stable for a couple reasons:
|
Thanks fort the reply, Jack.
|
As the person who wrote the Vert.x senders for Quarkus, I can chime in on this: As Bruno said we did not want OkHttp anywhere on our classpath because it has a dependency on Kotlin. |
Check out the history in the sender / providers:
The churn in the APIs is very real, and could continue to change with additional enhancements for things like authentication providers, retry configurability, and whatever other features users request.
Users won't know the difference. Can't say whether or not the things we've supported are based on Vert.x senders.
"too simplistic" - not a convincing argument for an implementation detail. You can always implement your own
Why not use the built-in JDK HTTP sender? No extra classes required and it appears quarkus already requries java 11 (or 17). |
The JDK HTTP client has many drawbacks for our case, here are a few:
|
Sure, but those are never loaded. And the thread pool issue still remain |
OpenTelemetry exporters are batched and single-threaded, can you elaborate on what kind of thread pool issue you are seeing? |
The JDK client manages its own Thread Pool and that inevitably leads to some overhead |
JdkHttpSender only sends synchronous requests (i.e. it never calls |
Right now we have the exporter sender SPI under private folders:
https://github.com/open-telemetry/opentelemetry-java/blob/main/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/
And
https://github.com/open-telemetry/opentelemetry-java/blob/main/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/
We should allow frameworks to create their own senders and use an official SPI for it.
Describe the solution you'd like
Publicly support the SPI, classes and interfaces under the above packages.
Additional context
There are many sender implementations already. One example is Quarkus, which has implemented a Vert.x client based sender.
Wildfly will use it as well and other application servers will also have the same need.
The text was updated successfully, but these errors were encountered: