Mark declarative config as stable#4568
Conversation
|
This is ready for review, but SHOULD not be merged. Assuming we get the required approvals, I'll coordinate merging this with cutting the corresponding release of |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
…y-specification into stabilize-declarative-config
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
A concern I have is that this sort of implies that a spec for the behavior of Can the spec of config be stable before SDK initialization is defined? |
MikeGoldsmith
left a comment
There was a problem hiding this comment.
Looks good.
FYI I've started on implementing in Python too.
|
FYI the Go implementation is not compliant with the current version of the specification.
I do not say that it is a blocker for stabilization. Probably it would be also good to link to: https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md#declarative-configuration |
Yes there are different dimensions for an implementation. Go is up to date with the latest schema, but SDK implementation isn't complete. From my perspective, the signal I want is whether the implementers / maintainers of Go see problems with the spec that would prohibit implementing.
Yup this one is important 👍 The go implementation is less restrictive than the spec. I suspect this is for compatibility with collector substitution? If yes, the difference in substitution between collector and declarative config spec is known and intentional. The go implementation is in an interesting position because declarative config is used within the collector and outside the collector. Maybe this suggests a special flag which enables less restrictive substitution to match the collector semantics, which are disabled by default outside of the collector. Can discuss more on the issue.
👍 updated PR description |
|
Regarding
My biggest concern is that I am not sure if any implementation allows "nesting" of plugins e.g. making exporter wrappers. Related PR: #4407. Is this post v1 or should it already be supported? Or is it out of scope? |
The ComponentPluginProvider mechanism allows you to define custom exporters which wrap others. For example, I could write: With the interpretation:
It would be easier to do if there were standard built-in exporters for standard wrapper / nesting / delegation tasks, but it is possible. This task is common for samplers, which use composition models in a variety of the built-in implementations. |
jpkrohling
left a comment
There was a problem hiding this comment.
I believe that this is the biggest quality of life improvement that OTel users can have at the moment. I'm very excited about this one!
|
Congrats @open-telemetry/configuration-approvers and everyone else who contributed to this effort!! |
Resolves #4374.
We've cut 3 release candidates: https://github.com/open-telemetry/opentelemetry-configuration/releases
There are 4 languages up to date with the latest release,
1.0-rc.3:Additionally, php is up to date with
1.0-rc.2Besides the schema as defined in
opentelemetry-configuration, its also important to understand the status of implementations with respect to the spec language itself. This is tracked here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md#declarative-configurationSummary of the items being stabilized:
opentelemetry-configurationConfigPropertiesPluginComponentProviderParseandCreateOTEL_CONFIG_FILEcc @open-telemetry/configuration-maintainers