Skip to content

Conversation

jack-berg
Copy link
Member

@jack-berg jack-berg commented Jun 24, 2025

Resolves #4374.

We recently cut a release candidate for opentelemetry-configuration. After some additional bake-in time and review, we'd like to cut a stable release.

The stable release needs to coincide with marking key parts of the specification stable, so I'm opening this PR to solicit feedback such that when the time comes, we can mark the specification and opentelemetry-configuration stable is quick succession.

See open-telemetry/opentelemetry-configuration#100 for status of implementations.

cc @open-telemetry/configuration-maintainers

@jack-berg jack-berg requested review from a team June 24, 2025 14:46
@jack-berg
Copy link
Member Author

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 opentelemetry-configuration.

Copy link

github-actions bot commented Jul 2, 2025

This PR was marked stale due to lack of activity. It will be closed in 7 days.

Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

Copy link
Member

@pellared pellared Jul 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The type parameter in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk.md#register-componentprovider is not well-defined.
Is it an enumeration? I guess that the intention is that these are "SDK extension plugin interface" names.

Side note (for sure not needed for stabilization):
Do we want to also add some "instrumentation plugin" which could be any object so that the instrumentation/distribution could parse and interpret after it is returned by https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/api.md#get-instrumentation-config?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took a crack at it by adding this guidance:

SDKs should represent type in a manner that is idiomatic for their language.
For example, a class literal, an enumeration, or similar.
See supported SDK extension plugins for the set of
supported type values.

Let me know what you think.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a lot better. But please create a separate PR for it 😉

PS. I hope you are OK that I made some comments here instead of creating new (spamming) GitHub issues.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes the comments are great.

@jack-berg jack-berg removed the Stale label Jul 10, 2025
whatever manner is idiomatic for the language.

TODO: Add operation to update SDK components with new configuration for usage
with OpAmp
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracking here: #3771

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to resolve.
PS. You can consider adding

<!-- TODO: https://github.com/open-telemetry/opentelemetry-specification/issues/3771 -->

if it helps you in future.

fail fast) in accordance with
initialization [error handling principles](../error-handling.md#basic-error-handling-principles).

TODO: define behavior if some portion of configuration model is not supported
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We now have guidance around misalignment of file_format specified by user and supported by an SDK: https://github.com/open-telemetry/opentelemetry-configuration?tab=readme-ov-file#file-format

Also related, we're working on tooling to allow implementations to document what properties they support here: open-telemetry/opentelemetry-configuration#197

* [LoggerProvider](../logs/sdk.md#loggerprovider)
* [Propagators](../context/api-propagators.md#composite-propagator)
* [ConfigProvider](#configprovider)
* [ConfigProvider](#configprovider) (**Status**: [Development](../document-status.md))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: just to follow the existing pattern from other places of the specification

Suggested change
* [ConfigProvider](#configprovider) (**Status**: [Development](../document-status.md))
* **Status**: [Development](../document-status.md) - [ConfigProvider](#configprovider)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about this. I recently was talking with internal colleagues of mine who were reading the log spec and thought that the a variety of stable components were "In Development" because of confusing placement of the status text. For example:

Screenshot 2025-07-19 at 1 23 33 PM

Because there is no other text in the Logger section, and because its not clear where the "In development" ends, the entire SDK Logger component seems to be unstable, which of course is not the case.

I do think we should be consistent, but think that spec's current strategy for calling out a different status should be improved. Though in this particular case putting the status before the list entry doesn't seem to be more confusing.

Copy link
Member

@pellared pellared Jul 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though in this particular case putting the status before the list entry doesn't seem to be more confusing.

I agree therefore I prefer consistency.

that spec's current strategy for calling out a different status should be improved

I also agree but this should be a subject of a separate PR.

I think we could consider making some sections like (using https://github.com/orgs/community/discussions/16925):

Note

Status: Development

Paragraph. Tell me something more.

Not sure how it will render in https://opentelemetry.io/.
@open-telemetry/docs-approvers, do you have any ideas?

For bullet-points, I think that the current strategy may be good enough.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answering for the @open-telemetry/docs-approvers, it's a known issue that GitHub Markdown alerts don't render well on opentelemetry.io. That being said, there are spec docs that use this notation today.

* `component_provider` - The `ComponentProvider`.
* `type` - The type of plugin interface it provides (e.g. SpanExporter, Sampler,
etc).
* `type` - The type of plugin interface it provides.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like that in one place we are saying "component" in other "plugin" or "plugin interfaces".
I know that it keeps the same intention, but it makes me harder to read and interpret the specification.
I propose to use the term "Component" everywhere and just mention in the "Component" definition that this is a plugin that allows extensibility of the Configuration SDK.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fine with me. I was trying to connect the dots because elsewhere in the spec we both the words component and plugin interface. I'll try to be consistent here with "component" but also have a callout with something to the effect of: "... (also called plugin interface elsewhere in the spec)"

* `component_provider` - The `ComponentProvider`.
* `type` - The type of plugin interface it provides (e.g. SpanExporter, Sampler,
etc).
* `type` - The type of plugin interface it provides.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that linking would be helpful 👍

Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Jul 19, 2025
@MrAlias MrAlias removed the Stale label Jul 19, 2025
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Jul 27, 2025
@MrAlias MrAlias removed the Stale label Jul 28, 2025
Copy link

github-actions bot commented Aug 7, 2025

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Aug 7, 2025
@MrAlias MrAlias removed the Stale label Aug 7, 2025
@tsloughter
Copy link
Member

A concern I have is that this sort of implies that a spec for the behavior of AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk(); is stable, which I think requires that #4591 be done.

Can the spec of config be stable before SDK initialization is defined?

Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Aug 15, 2025
@MrAlias MrAlias removed the Stale label Aug 15, 2025
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

Copy link

github-actions bot commented Sep 6, 2025

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Sep 6, 2025
@lmolkova lmolkova removed the Stale label Sep 6, 2025
@dprotaso
Copy link

dprotaso commented Sep 9, 2025

Is there anything blocking this PR?

Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Sep 17, 2025
@lmolkova lmolkova removed the Stale label Sep 18, 2025
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Sep 25, 2025
Copy link

github-actions bot commented Oct 3, 2025

Closed as inactive. Feel free to reopen if this PR is still being worked on.

@github-actions github-actions bot closed this Oct 3, 2025
@marcalff marcalff reopened this Oct 6, 2025
@marcalff marcalff requested review from a team as code owners October 6, 2025 08:28
@marcalff
Copy link
Member

marcalff commented Oct 6, 2025

Re opened.

@jack-berg

Please look at the merge conflict on the spec compliance matrix, due to recent changes to yaml.

@marcalff marcalff removed the Stale label Oct 6, 2025
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Oct 14, 2025
@marcalff marcalff removed the Stale label Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracking: Stabilize declarative configuration

10 participants