-
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 OTEL Config Params #17703
Add OTEL Config Params #17703
Conversation
/cc @kenfinnigan |
This workflow status is outdated as a new workflow run has been triggered. 🚫 This workflow run has been cancelled. ✖ This workflow run has failed but no jobs reported an error. Something weird happened, please check the workflow run page carefully: it might be an issue with the workflow configuration itself. |
This workflow status is outdated as a new workflow run has been triggered. |
@luneo7 I plan to review this tomorrow, apologies for the delay. I also wanted to let you know they've modified the Trace propagators to use the same SPI: open-telemetry/opentelemetry-java#3294 Once released, we should be able to load all propagators with a single SPI without any dependencies except the SPI one! |
...pentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/OpenTelemetryConfig.java
Outdated
Show resolved
Hide resolved
.../opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/OpenTelemetryUtil.java
Outdated
Show resolved
Hide resolved
...entelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerConfig.java
Outdated
Show resolved
Hide resolved
...entelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerConfig.java
Show resolved
Hide resolved
...try/deployment/src/test/java/io/quarkus/opentelemetry/deployment/VertxOpenTelemetryTest.java
Outdated
Show resolved
Hide resolved
...entelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerConfig.java
Outdated
Show resolved
Hide resolved
Hi @kenfinnigan I think there is 3 ways of approaching this changes. When doing the PR I thought that it would be beneficial to everything be configured by params/properties because it would be more straight forward for the developer to get it running and configured, because those configs can be all set by the application properties and the user wouldn't need to code any class to start using it, and after reading the OTEL SDK autoconfigure extension they are doing this just reading properties. There is one drawback though of doing everything by config params, Quarkus implementation would be tied to the OTEL implementation and when adding new features (resources, propagators etc) we would need to change the implementation if not using service loaders. I know that they are adding service loader for the propagators in a new release and we can also use it to construct the resources, but there is some stuff like samplers that can't be configured using service loader, Jaeger one for instance needs parameters to construct the class. When using beans it makes the developer always have to code something to get it running, if we do that for resources and the user wants 3 resources, then there will be 3 producers, or just one merging all resources and returning it, and then we start to add complexity to the OTEL config. The benefit of it is that if something new appears in the OTEL lib or the user coded their own implementation for something they can use it right away. And there is also the possibility of mixing app config with beans, if we do this we need to be sure that it makes sense, because the user might ask the why he is configuring some stuff in the app properties and needs to create a beans for other stuff. What do you think about all this stuff =] ? |
Unfortunately, I think we need a mixture, depending on the particular piece of information. For the case of For Not sure I've answered all your questions, but hopefully I've articulated my current thinking |
...telemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRecorder.java
Show resolved
Hide resolved
...opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerUtil.java
Outdated
Show resolved
Hide resolved
...try/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/TestUtil.java
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 4fc6d31
|
This workflow status is outdated as a new workflow run has been triggered. Failing Jobs - Building 7c7d3bd
Full information is available in the Build summary check run. Test Failures⚙️ JVM Tests - JDK 16 #📦 integration-tests/kafka-streams✖ |
...y/deployment/src/test/java/io/quarkus/opentelemetry/deployment/OpenTelemetrySamplerTest.java
Outdated
Show resolved
Hide resolved
...try/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/TestUtil.java
Show resolved
Hide resolved
...pentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/OpenTelemetryConfig.java
Outdated
Show resolved
Hide resolved
.../src/main/java/io/quarkus/opentelemetry/runtime/graal/OpenTelemetrySdkAutoConfiguration.java
Show resolved
Hide resolved
...telemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRecorder.java
Outdated
Show resolved
Hide resolved
...telemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRecorder.java
Show resolved
Hide resolved
...opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerUtil.java
Outdated
Show resolved
Hide resolved
This workflow status is outdated as a new workflow run has been triggered. |
...lemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/LateBoundSampler.java
Show resolved
Hide resolved
...emetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/DelayedAttributes.java
Show resolved
Hide resolved
...telemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRecorder.java
Show resolved
Hide resolved
...etry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRuntimeConfig.java
Outdated
Show resolved
Hide resolved
I know this has been a lengthy back and forth, but I really appreciate the contribution and effort to have this included. It's saved me a lot of work |
This workflow status is outdated as a new workflow run has been triggered. 🚫 This workflow run has been cancelled. Failing Jobs - Building 870fabc
|
...etry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/TracerRuntimeConfig.java
Outdated
Show resolved
Hide resolved
If you could fix the ".z" in a comment and also squash all the commits down to 1, we will let CI run and see how it goes. Thanks again for all the great work! |
This workflow status is outdated as a new workflow run has been triggered. 🚫 This workflow run has been cancelled. Failing Jobs - Building 7af08fb
|
I'm going to review this today, but I wondered whether we need any updates to the guide around this new configuration? If you think we do, I'm fine with it being a separate PR so as not to trigger another CI run |
I'm glad to help =] The back & forth is part of it =] So I think that it would be good to update the docs, a separate PR would be ideal |
@kenfinnigan while doing this PR I found something... the vertx tracing adapter is using |
Just opened a PR for the client ip: #17958 |
Thanks again for all your work on this @luneo7!! |
Adds additional config params for OpenTelemetry (addresses features requests in #17640).
This PR adds a way of setting resources, propagators and id generator from the OTEL library using application properties