File configuration provides a mechanism for configuring OpenTelemetry which is more expressive and full-featured than the environment variable based scheme, and language agnostic in a way not possible with programmatic configuration.
File configuration defines a Configuration Model, which can be expressed in a configuration file. Configuration files can be validated against the Configuration Schema, and interpreted to produce configured OpenTelemetry components.
The configuration model is defined in opentelemetry-configuration using the JSON Schema.
TODO: define stability guarantees and backwards compatibility
A configuration file is a file representation of the Configuration Model.
TODO: define acceptable file formats
TODO: define environment variable substitution
SDK configuration defines the interfaces and operations that SDKs are expected to expose to enable file based configuration.
In-Memory Configuration Model
SDKs SHOULD provide an in-memory representation of
the Configuration Model. In general, SDKs are encouraged
to provide this in-memory representation in a manner that is idiomatic for their
language. If an SDK needs to expose a class or interface, the
Configuration is RECOMMENDED.
TODO: define how to parse configuration file to configuration model
TODO: define how to apply configuration model to produce configured sdk components
- Configuration proposal (OTEP #225)