-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Add OpenTelemetry OTLP Exporter #17641
Conversation
/cc @kenfinnigan |
@luneo7 thanks for the contribution! I have a few suggestions on the current changes:
Let me know if you have any questions. |
Hi @kenfinnigan =] I can do 1, 2, and 4 right away no problem =] About 3, I thought of having a producer of About the Resource, I kind thought about the same way. If someone wants multiple resources they can use What do you think? Do you already have some proposal for those? Happy to help =] |
Thanks @luneo7, if you could do 1, 2, 4, that would be greatly appreciated! As for 3, I hadn't done anything beyond some thinking of the various options. For propagators, I was thinking of providing a config option to define the propagators you want to be installed, similar to what OpenTelemetry Java AutoConfigure does, but doing so in a way that doesn't require the extension to depend on the artifact which includes them. So it would need some mapping of "type name" to "class name string" so we can see if the class exists before we install a single or composite propagator. Though we could have user applications create composite propagators, if we can keep it simple to do the developer experience should be improved. Do you agree? Resources are certainly more tricky, but there are also some aspects of the AutoConfigure extension providing default resources for environment, process, etc which could be interesting to provide without a developer having to construct a Resource with all the necessary bits |
One thing about AutoConfigure is that they created one SPI, and they are using |
Yeah, I saw how they did that, and I'd certainly like to avoid the need for reflection. I've asked a question on whether there's a reason for some differences between the propagators, as the AWS propagator implements a provider with an SPI method for retrieving the instance. If the other propagators had providers as well it would make implementation easier. Otherwise, I don't have a good answer for how to solve it right now. |
@kenfinnigan Updated the PR, now it has only the OTLP exporter |
@kenfinnigan Created another PR to address the config params: #17703 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @luneo7, looks really good.
Had a couple of minor comments, but the big question is whether we should have a section in the OpenTelemetry Guide talking about how to use the OTLP Exporter instead of the Jaeger one. What do you think?
extensions/opentelemetry/opentelemetry-exporter-otlp/deployment/pom.xml
Outdated
Show resolved
Hide resolved
...rc/test/java/io/quarkus/opentelemetry/exporter/otlp/deployment/OtlpExporterDisabledTest.java
Show resolved
Hide resolved
...metry/opentelemetry-exporter-otlp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
Outdated
Show resolved
Hide resolved
This workflow status is outdated as a new workflow run has been triggered. 🚫 This workflow run has been cancelled. Failing Jobs - Building fe49742
Full information is available in the Build summary check run. Test Failures⚙️ JVM Tests - JDK 16 #📦 extensions/arc/deployment✖ |
I think that having the OTLP Exporter in the guide would be preferable since it is the open standard protocol and the collector can export it later to whatever people want. And right now the difference between the two exporters in terms of configuration are minimal, and we can even add a note that switching to the Jaeger protocol would be as easy as using the Jaeger exporter import instead of the OTLP. |
Sounds good, could you add that with this PR? Thanks |
Yup, saw that we already have the OTEL guide (#17639), will tweak it =] |
@kenfinnigan updated the docs and also created a PR for the quick-start (quarkusio/quarkus-quickstarts#877) |
Thanks @luneo7! Really appreciate the contribution. One thing I hadn't thought of, until your doc and quickstart changes, is that we might want to move the jaeger exporter into the Quarkiverse as opposed to being a main extension. What do you think? |
I think it makes sense to move the Jaeger exporter to the Quarkiverse, since we already have everything to make it work in the main extensions and nothing "core" depends on it. |
Adds OpenTelemetry OTLP Exporter and addresses features requests in #17640