OpenTelemetry Declarative Configuration Reaches Stable Status

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_FILE environment 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.

Sources