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

[TC Request]: Environment-based Configuration Guidance #2891

Closed
Aneurysm9 opened this issue Oct 18, 2022 · 5 comments
Closed

[TC Request]: Environment-based Configuration Guidance #2891

Aneurysm9 opened this issue Oct 18, 2022 · 5 comments
Assignees
Labels
spec:miscellaneous For issues that don't match any other spec label triage:deciding:tc-inbox Needs attention from the TC in order to move forward

Comments

@Aneurysm9
Copy link
Member

For a long time there has been a recognition that using environment variables as a configuration mechanism has limitations and that we will require a formalized configuration mechanism for OpenTelemetry SDK implementations. Though there appears to be broad support for the concept of a configuration file, it has not been a priority in part because we have thus far always made the choice to simply add more environment variables for configuration. With #2857 we have encountered a configuration point that is beyond the abilities of our current environment variable-based configuration system. In discussion during the Spec SIG meeting on 2022-10-18 there was support for declaring a moratorium on the definition of new environment variables for configuration purposes until an alternate configuration mechanism that can support the full range of configuration options is available and agreement that such a declaration should come from the Technical Committee.

This issue serves to track the request that the Technical Committee communicate its consensus position regarding whether the specification should cease adding or extending environment variable-based configuration until such time as a fully-functional alternate configuration mechanism is defined in stable specification with multiple inter-operating implementations available.

@Aneurysm9 Aneurysm9 added the spec:miscellaneous For issues that don't match any other spec label label Oct 18, 2022
@carlosalberto carlosalberto added the [label deprecated] triaged-accepted [label deprecated] Issue triaged and accepted by OTel community, can proceed with creating a PR label Oct 24, 2022
@carlosalberto
Copy link
Contributor

This has been accepted as an important item to pay attention to, and the TC started discussing this, and will follow up as expected.

@jsuereth
Copy link
Contributor

The TC has decided to put a moratorium on environment variable configuration related changes until a formalized configuration mechanism is in place.

The current SDK environment variable configuration will not be extended with anything following:

  • Anything that is not statically typed. That is every environment variable must have a known expected type.
  • Anything that has a non-primitive type (see here for the list of primitive types)
  • No new complex type encodings in environment variables (arrays, maps, etc).
    • No Repeatable values (e.g. env variables, with an index in a name, like OTEL_FOO_1, OTEL_FOO_2)
    • No variable environmental name patterns, e.g. OTEL_FOO_{some set of allowed values}

Additionally, new environment variable use-cases will be evaluated and non-essential use-cases may still be blocked on a full configuration specification.

Further restrictions will be added here as needed.

@joaopgrassi
Copy link
Member

formalized configuration mechanism is in place.

Just to be clear, now this "formalized mechanism" will be the file based configuration?

@svrnm
Copy link
Member

svrnm commented May 6, 2024

@open-telemetry/technical-committee this issue seems to be a tracker for the moratorium on environment variables, we wonder if this should be pinned (and renamed to highlighting this moratorium) such that it is easier to be found. This issue will be closed when the configuration is put in place and it is no longer needed to have a moratorium.

@svrnm svrnm added triage:deciding:tc-inbox Needs attention from the TC in order to move forward and removed [label deprecated] triaged-accepted [label deprecated] Issue triaged and accepted by OTel community, can proceed with creating a PR labels May 6, 2024
@jack-berg
Copy link
Member

Discussed in the 5/15/24 TC meeting.

The TC opinion is that the moratorium exists in the form of this issue comment. The moratorium was put in place to create space for file configuration, which has made progress and has momentum - please refer to the file configuration project borad for tracking the status. Closing this issue, but closing does not indicate a change or removal in the moratorium. If folks wish to codify anything in particular about the moratorium in the spec, please open another issue to describe that proposal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:miscellaneous For issues that don't match any other spec label triage:deciding:tc-inbox Needs attention from the TC in order to move forward
Projects
None yet
Development

No branches or pull requests

7 participants