-
Notifications
You must be signed in to change notification settings - Fork 900
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
Requirements of distributions for configuration #4416
Comments
@jeanbisutti also wants to help with understading the needs of the MS distro for Java |
cc @trask |
@zeitlinger As discussed, the Microsoft distribution of the OpenTemetry Java agent provides a JSON file allowing the user to configure OTel and non-OTel features (that could potentially be implemented on the OTel side). Some specific configurations: |
Hi all - moving to the spec repo since this repo is just concerned with the declarative configuration data model. The spec would be the place that would specify any common hooks for distributions to customize the declarative config. |
There's a third type of change which is things that can't be configured via declarative config. Consider OTLP proxy configuration, which is available via the opentelemetry-java programmatic config API (i.e. the OTLP exporter builders), but which which is not (yet) available in declarative config. If a distribution wants to configure these types of things, they need some sort of hook / callback to access the various SDK components as they're being constructed. In opentelemetry-java, AutoConfigurationCustomizer facilitates this. We might want to say that this is out of scope, and instead encourage distributions to extend declarative configuration to make sure it covers all the properties they need. Declarative config has a design principle of "what you see is what you get". If a user specifies their config in a declarative config YAML file, only to have the resolved SDK be different, then that is confusing and erodes trust. This principle is in conflict with distributions having hooks / callbacks to customize config contents. I can see a couple of paths forward:
I wonder if distribution customization requirements are language agnostic, or are mostly specific to opentelemetry-java and the tendency for vendors to publish distributions of the otel java agent? This is a great issue to collect feedback and fine out. |
I think this is the same as my "A: things that can't currently be configured via properties (3, 4)"
That would be a show-stopper - at least for the Grafana distribution.
I agree - and I think we can find a solution that meets that bar
yes, this is basically what I proposed above
this basically defeats one of the main reasons to have a distribution - to have features before they are accepted upstream
we should not build a feature based on the presence of tools like helm - that's too restricting
I think it's mostly a java thing - but I'm also looking for more feedback |
here's a first PoC to try the configuration: grafana/grafana-opentelemetry-java#896 It uses Filling this structure with the required spring boot properties will be a challenge - but that's the next step. |
To figure out how distributions can maintain their functionality with file config, let's collect some use cases, which can be added as comments to this issue.
Based on that, we can create a prototype implementation.
@jack-berg FYI
The text was updated successfully, but these errors were encountered: