The OpenTelemetry project has announced that key portions of its declarative configuration specification have reached stable status. The observability framework is a vendor-neutral and language-agnostic way to configure telemetry collection. It has been covered recently on InfoQ, with big names such as Airbnb using OpenTelemetry for their high-volume metrics pipeline, and OpenTelemetry publishing a "demystifying" article to broaden adoption.
Jack Berg, a principal engineer at Grafana Labs, documented the changes in a recent blog post. Berg explained that the stabilisation includes the JSON schema for the data model, the YAML representation of configuration files, and the in-memory representation of configuration data.
Declarative config schema is on track to become a crucial cross-language user-facing API for the whole project.
- Jack Berg
The announcement noted that language implementations are now available in five languages. These are C++, Go, Java, JavaScript and PHP. Development work continues for .NET and Python implementations. Berg emphasised that the specification itself reaching stability is the most important step for ensuring a consistent user experience.
Berg explained that one of the biggest benefits of declarative configuration is the ability to define telemetry settings in configuration files rather than environment variables. He pointed out that this method gives a much richer language for specifying options. The new system allows users to define complex telemetry pipelines in a declarative format that can be version-controlled and shared across teams.
Getting all three observability signals configured in a single place has historically been a juggling act of environment variables, programmatic SDK initialisation code, and collector configs. The OpenTelemetry declarative configuration format changes this, by letting users define trace, metric, and log pipelines in a single YAML file that the SDK reads at startup. A practical example shows how users can configure resource attributes, trace providers, metric readers and log processors in a single file format, then point their SDK to the file using the OTEL_CONFIG_FILE environment variable.

A recent Grafana OpenTelemetry community call provided additional perspective on declarative configuration. Marylia Gutierrez, an OpenTelemetry JavaScript approver and core contributor at Grafana Labs, demonstrated how declarative configuration simplifies setup across languages. Gutierrez explained that users had to rely on environment variables before declarative configuration was added, but those could not handle complex configuration needs. The new YAML-based approach provides a more robust structure that lets users define a hierarchical configuration with all settings in one place.
The call included a live demo showing declarative configuration in action with Java. The demonstration showed how users can configure a custom sampler and specify which spans to drop based on attribute patterns. Gutierrez noted that achieving this with environment variables would also require custom code and separate libraries.
The community call also addressed the current language support. According to the compliance matrix shared during the call, Java and PHP are fully compliant with the basic requirements. JavaScript is under active development with more features being added. Go has some capabilities available but documentation is being updated to show how to use them. Python support is still in development.
The discussion also covered remote and dynamic configuration. Gutierrez described this as a future capability where operations teams could push configuration changes to adjust sampling rates or enable additional instrumentation without requiring code changes or redeployment. The vision is that a change to a YAML file could be pushed and picked up by applications without a restart.
OneUptime have also published a detailed guide to using declarative configuration. A tutorial posted on their blog covers the structure of configuration files, including resource attributes, tracer providers, metric readers and logger providers.
Stabilising the schema is the most important thing for a stable user experience.
- Jack Berg
The OpenTelemetry project has indicated that it will keep expanding declarative configuration support. Dynamic configuration, which would allow runtime changes to telemetry settings, is still on the roadmap.