-
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
Replace OkHttp tracing grpc backend with Vert.x #34647
Conversation
/cc @brunobat (opentelemetry), @radcortez (opentelemetry) |
...metry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/OtlpRecorder.java
Outdated
Show resolved
Hide resolved
I'll review by the end of the week. |
Thanks. I still need to make Vert.x related improvements to this, I'll let you know when I think it's ready to go. |
I think it's in a shape to be reviewed now |
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.
LGTM - at least the client.
.../runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/VertxGrpcExporter.java
Show resolved
Hide resolved
Can we remove the |
No, it's used elsewhere as well (I remember an issue with Infinispan) |
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.
Still checking the details on the PR, but one thing we must have is integration tests with the OTel Collector.
The OTel side has them for their stock exporter and we should too.
Where are those tests? |
We have a test here: https://github.com/open-telemetry/opentelemetry-java/blob/main/integration-tests/otlp/src/main/java/io/opentelemetry/integrationtest/OtlpExporterIntegrationTest.java Also, we need to consider if we shouldn't be using a much simpler abstractions, available here: This is using a new SPI that allows to plug your own client. |
Thanks
Those are only for HTTP, they do not work for gRPC. |
Thanks! |
I wonder if the SPI cannot be used anyway... We just need to switch based on the protocol config... |
I don't see how as the gRPC exporters don't use HttpSender at all |
Seems my IntelliJ setup is completely busted, so I won't be adding the test today. If you want to take a swing at it, feel free to push a new commit into this PR |
looking at the test right now |
I was actually able to fix my IntelliJ setup so I am looking into adding the required test |
As part of the test work, I'll also probably add TSL config support - looking into both now |
Ok @geoand. Will work on the baggage problem instead. |
Sounds good! |
PR updated with an integration test uses the same testing philosophy as the original opentelemetry-java but has two key differences:
Furthermore, the final commit also adds support for TLS configuration of the exporter. |
|| !options.getPemKeyCertOptions().getCertPaths().isEmpty() | ||
|| !options.getPemKeyCertOptions().getKeyPaths().isEmpty()) { | ||
options.setSsl(true); | ||
options.setUseAlpn(true); |
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.
@cescoffier I found that is is necessary, can you confirm?
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.
I mean that based on the error message I was seeing, it seemed like Alpn is necessary when using HTTP2. Did I understand correctly?
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.
Excellent. Getting rid of Armeria was perfect.
.../java/io/quarkus/opentelemetry/runtime/config/runtime/exporter/OtlpExporterTracesConfig.java
Show resolved
Hide resolved
Also add TLS support to the exporter
.../java/io/quarkus/opentelemetry/runtime/config/runtime/exporter/OtlpExporterTracesConfig.java
Show resolved
Hide resolved
@brunobat all good to merge? |
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 @geoand !
🙏🏼 |
Closes: #32238
TODO:
Remove OkHttp dependencyFix nativePerform hardening?