-
Notifications
You must be signed in to change notification settings - Fork 71
feat: Add opentelemetry initial declarative configuration #487
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
base: main
Are you sure you want to change the base?
feat: Add opentelemetry initial declarative configuration #487
Conversation
05acef2 to
85505ee
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #487 +/- ##
=======================================
+ Coverage 54.4% 55.8% +1.3%
=======================================
Files 71 77 +6
Lines 11892 12502 +610
=======================================
+ Hits 6476 6980 +504
- Misses 5416 5522 +106 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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.
We now seem to have a good approach that offers extensibility well. However, there are a lot of unnecessary APIs and a lot of APIs that shouldn't be public.
I don't think we need more public APIs than these for Metrics:
For opentelemetry-config
ConfigurationProvidersRegistry(struct)ConfigurationProvidersRegistry::new()ConfigurationProvidersRegistry::register_metrics_config()TelemetryProviders(struct)TelemetryProviders::generate_from_yaml_file() -> Result<TelemetryProviders, ConfigurationError>`ConfigurationError(struct or enum that would be used an error type)TelemetryProviders::meter_provider()which can be used to retrieve the MeterProvider generated
For opentelemetry-config-stdout
register_console_exporter()
Co-authored-by: Utkarsh Umesan Pillai <66651184+utpilla@users.noreply.github.com>
|
What additional value is added by
Why do we need different contracts? The only contract needed is access to
"The configuration will not live in a separate file for most of cases." Where is this coming from? This is a new feature, and we don't have any existing users. The examples in the opentelemetry config are file based. Please only add the bare minimum APIs for now. If there is a legit need in the future, we can always offer more APIs. |
The method inside the metrics registry does not have "metric" in it. That is part of the value, the "suffix" is taken from the object it belongs.
Take a look at the latest version. It is reader level, and it can be Periodic or Pull.
I'm implementing this to be embedded into the OTEL Arrow project. That will be the first client, and it will use the generate_from(struct). |
lalitb
left a comment
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.
PR has changed quite a bit since my approval, keeping it open till we agree on the design.
|
@andborja @lalitb and I discussed the design and public API design offline. Here's the approach: From a user's perspective the workflow would like this:
Public APIs:
From the perspective of components wanting to offer factories for their registration:
@andborja Could you please confirm that you agree to this approach? If yes, let's have the PR updated to reflect the abovementioned design. |
Confirmed |
Changes
Adds initial declarative configuration support.
Merge requirement checklist
CHANGELOG.mdfiles updated for non-trivial, user-facing changes