Skip to content
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

Tracking: Stabilize declarative configuration #4374

Open
5 tasks
jack-berg opened this issue Jan 17, 2025 · 2 comments
Open
5 tasks

Tracking: Stabilize declarative configuration #4374

jack-berg opened this issue Jan 17, 2025 · 2 comments
Labels
area:configuration Related to configuring the SDK sig-issue A specific SIG should look into this before discussing at the spec spec:miscellaneous For issues that don't match any other spec label

Comments

@jack-berg
Copy link
Member

jack-berg commented Jan 17, 2025

We've made a lot of progress in declarative configuration, and I'd like to discuss what scope should be included in an initial cut at stabilization, and blockers.

The declarative config spec is broken into a variety of pieces:

  • Data model: SDK implementation requirements around data model, and definition of schema. Subcomponents:
    • opentelemetry-configuration: repository for data model JSON schema
    • file-based YAML representation, including env var substitution syntax
    • SDK in-memory representation
  • Instrumentation configuration API: defines an API for instrumentation to participate in configuration. Subcomponents:
    • ConfigProperties for programmatic access of structured config
    • ConfigProvider for accessing instrumentation config
  • SDK: SDK user facing capabilities. Subcomponents:
    • ConfigProvider SDK implementation of ConfigProvider API component
    • ComponentProvider defines mechanism for referencing / loading SDK extension plugin components (i.e. exporters, samplers, etc) in declarative config
    • Parse and Create operations for producing configured SDK components from YAML file representation
  • OTEL_EXPERIMENTAL_CONFIG_FILE, for automatic initialization based on YAML file representation

I propose the following scope for initial stability:

  • opentelemetry-configuration
  • file-based YAML representation
  • SDK in-memory representation
  • ConfigProperties
  • ComponentProvider
  • Parse and Create operations
  • OTEL_EXPERIMENTAL_CONFIG_FILE, adjusted to OTEL_CONFIG_FILE

That means the following would be out of scope:

  • ConfigProvider (i.e. instrumentation config API)

Assuming this scope, the follow lists the known blockers to stability

The following list are not specifically blocking, but they should be reviewed to ensure the stability of declarative configuration doesn't prevent us from addressing them in the future:

Additionally, we need evaluation / feedback of the state of the spec from the current prototype language implementations.

If you have feedback on the scope of initial stability, or on additional blockers, please discuss in this issue.

@jack-berg jack-berg added the spec:miscellaneous For issues that don't match any other spec label label Jan 17, 2025
@svrnm svrnm added area:configuration Related to configuring the SDK sig-issue A specific SIG should look into this before discussing at the spec labels Jan 20, 2025
@codeboten
Copy link
Contributor

Not strictly blocking, but we should ensure we're not preventing addressing issues like this one #2739

@pellared
Copy link
Member

Please consider: #4384

I was also thinking if the declarative configurations should allow adding custom components e.g. custom span processor created by the user. Right now it looks like the declarative configuration can be used only in a sandbox.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:configuration Related to configuring the SDK sig-issue A specific SIG should look into this before discussing at the spec spec:miscellaneous For issues that don't match any other spec label
Projects
Development

No branches or pull requests

4 participants