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

Configuration proposal #225

Merged
merged 32 commits into from
Mar 30, 2023
Merged

Conversation

codeboten
Copy link
Contributor

@codeboten codeboten commented Feb 23, 2023

This OTEP is the result of the Configuration working group. See open-telemetry/opentelemetry-specification#2920 for additional details.

cc @MrAlias @jack-berg

On-going prototypes:

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.

cc @MrAlias @jack-berg

Signed-off-by: Alex Boten <[email protected]>
@codeboten codeboten marked this pull request as ready for review February 23, 2023 19:24
@codeboten codeboten requested a review from a team February 23, 2023 19:24
Copy link

@jaronoff97 jaronoff97 left a comment

Choose a reason for hiding this comment

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

Incredibly exciting change that would massively improve our ability to easily configure SDKs internally. Thank you for proposing this!!

text/0225-configuration.md Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
Signed-off-by: Alex Boten <[email protected]>
text/0225-configuration.md Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
@carlosalberto
Copy link
Contributor

Left a pair of comments but overall LGTM. One thing I'm curious about though, is how to individually enable/disable instrumentation libraries (which currently is exposed by both Java and DotNet auto instrumentation), e.g. OTEL_INSTRUMENTATION_QUARTZ_ENABLED=false

cc @pellared

@pellared
Copy link
Member

@open-telemetry/dotnet-instrumentation-maintainers PTAL

text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
text/0225-configuration.md Outdated Show resolved Hide resolved
jack-berg added a commit to open-telemetry/opentelemetry-specification that referenced this pull request Apr 12, 2023
Initial followup to [OTEP
#225](open-telemetry/oteps#225).

This lays the initial groundwork for file configuration in the
specification. There are placeholders TODOs for many various followup
tasks. Additional work is also needed to figure out how to merge [SDK
Configuration](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-configuration.md),
[SDK Environment
Variables](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md)
and file configuration into a cohesive story.

This PR proposes the configuration schema live in
`opentelemetry-specification/specification/configuration/schema/`, which
implies that at some point additional build steps will be needed to
confirm changes to the schema are valid and allowed.

cc @MrAlias, @codeboten
pyohannes pushed a commit to pyohannes/oteps that referenced this pull request May 23, 2023
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
jack-berg added a commit to open-telemetry/opentelemetry-specification that referenced this pull request Oct 16, 2023
Part of incorporating [OTEP
#225](open-telemetry/oteps#225) into the
specification.

Followup to #3360.
jack-berg added a commit to open-telemetry/opentelemetry-specification that referenced this pull request Dec 14, 2023
Part of incorporating [OTEP
#225](open-telemetry/oteps#225) into the
specification.

Followup to #3437.

The adds the YAML file format, and leaves an open TODO for the JSON
format discussed in the original OTEP. It also define environment
variable substitution. IMO its necessary to define environment variable
substitution at the same time as file format because they interact in
ways that aren't immediately obvious and need to be prototyped.

The opentelemetry-java implementation of file configuration already
accepts YAML encoding and performs environment variable substitution as
described in this PR. It does not support JSON, and I don't think we
should unless there is good reason. I omitted the JSON file format
because I don't know of any prototypes that permit it. We should add
JSON once a language implements it and explores how environment variable
substitution works with JSON.
jack-berg added a commit to open-telemetry/opentelemetry-specification that referenced this pull request Jan 29, 2024
Part of incorporating [OTEP
#225](open-telemetry/oteps#225) into the
specification.

Followup to #3744.

This defines how file configuration works with custom SDK extension
components (Samplers, Exporters, etc).

It defines the concept of a Component Provider:
- Component providers are registered with the type of extension
component they provide and a name. Component providers are registered
automatically or manually based on what is idiomatic in the language.
- Component providers have a Create Plugin method, which passes
configuration properties as a parameter and returns the configured
component
- When Create is called to interpret a file configuration model, and it
comes across a reference to a extension component which is not built-in,
it invokes Create Plugin on the corresponding component provider. If no
corresponding component provider exists, or if Create Plugin returns an
Error, Create returns an error.

Prototype implementation in java here:
open-telemetry/opentelemetry-java-examples#227

cc @open-telemetry/configuration-maintainers
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 23, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 23, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 30, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
carlosalberto pushed a commit to carlosalberto/opentelemetry-specification that referenced this pull request Oct 31, 2024
Initial followup to [OTEP
open-telemetry#225](open-telemetry/oteps#225).

This lays the initial groundwork for file configuration in the
specification. There are placeholders TODOs for many various followup
tasks. Additional work is also needed to figure out how to merge [SDK
Configuration](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-configuration.md),
[SDK Environment
Variables](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md)
and file configuration into a cohesive story.

This PR proposes the configuration schema live in
`opentelemetry-specification/specification/configuration/schema/`, which
implies that at some point additional build steps will be needed to
confirm changes to the schema are valid and allowed.

cc @MrAlias, @codeboten
carlosalberto pushed a commit to carlosalberto/opentelemetry-specification that referenced this pull request Oct 31, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry#2920 for
additional details.
carlosalberto pushed a commit to carlosalberto/opentelemetry-specification that referenced this pull request Oct 31, 2024
carlosalberto pushed a commit to carlosalberto/opentelemetry-specification that referenced this pull request Oct 31, 2024
…telemetry#3744)

Part of incorporating [OTEP
open-telemetry#225](open-telemetry/oteps#225) into the
specification.

Followup to open-telemetry#3437.

The adds the YAML file format, and leaves an open TODO for the JSON
format discussed in the original OTEP. It also define environment
variable substitution. IMO its necessary to define environment variable
substitution at the same time as file format because they interact in
ways that aren't immediately obvious and need to be prototyped.

The opentelemetry-java implementation of file configuration already
accepts YAML encoding and performs environment variable substitution as
described in this PR. It does not support JSON, and I don't think we
should unless there is good reason. I omitted the JSON file format
because I don't know of any prototypes that permit it. We should add
JSON once a language implements it and explores how environment variable
substitution works with JSON.
carlosalberto pushed a commit to carlosalberto/opentelemetry-specification that referenced this pull request Oct 31, 2024
…lemetry#3802)

Part of incorporating [OTEP
open-telemetry#225](open-telemetry/oteps#225) into the
specification.

Followup to open-telemetry#3744.

This defines how file configuration works with custom SDK extension
components (Samplers, Exporters, etc).

It defines the concept of a Component Provider:
- Component providers are registered with the type of extension
component they provide and a name. Component providers are registered
automatically or manually based on what is idiomatic in the language.
- Component providers have a Create Plugin method, which passes
configuration properties as a parameter and returns the configured
component
- When Create is called to interpret a file configuration model, and it
comes across a reference to a extension component which is not built-in,
it invokes Create Plugin on the corresponding component provider. If no
corresponding component provider exists, or if Create Plugin returns an
Error, Create returns an error.

Prototype implementation in java here:
open-telemetry/opentelemetry-java-examples#227

cc @open-telemetry/configuration-maintainers
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 31, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Nov 1, 2024
* Configuration proposal

This OTEP is the result of the Configuration working group. See
open-telemetry/opentelemetry-specification#2920 for
additional details.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.