The OpenTelemetry project has reached a significant milestone: key portions of the declarative configuration specification are now stable. This marks a major step forward for observability configuration management in cloud-native environments.
What Went Stable
The following components have been marked stable:
- JSON schema for the data model: Defined in opentelemetry-configuration with stable 1.0.0 release
- YAML representation: File format specification for configuration files
- In-memory representation: Data model representation in SDKs
- ConfigProperties: Generic representation of YAML mapping nodes
- PluginComponentProvider: Mechanism for referencing custom plugin components
- Parse and Create operations: SDK operations for parsing YAML and instantiating components
- OTEL_CONFIG_FILE: Standard environment variable to enable declarative config
Language Implementation Status
Implementations are available in five languages: Java, Python, Go, .NET, and JavaScript/Node.js—all stable.
Why Declarative Configuration Matters
Traditional OpenTelemetry SDK configuration relies on code-based setup or scattered environment variables. Declarative configuration brings:
- Version-controlled configuration: Check your observability setup into Git
- Consistent environments: Same config across dev, staging, and production
- Simplified operations: No code changes needed to adjust sampling or exporters
- Platform integration: Kubernetes ConfigMaps and Helm charts work naturally
Getting Started
- Create a configuration file following the schema
- Set the
OTEL_CONFIG_FILEenvironment variable - The SDK automatically parses and applies the configuration
OTTL Context Inference in Filter Processor
OpenTelemetry Collector v0.146.0 brings context inference to the Filter Processor with new top-level config fields: trace_conditions, metric_conditions, log_conditions, and profile_conditions.
