Skip to content

Declarative configuration: support for the language-specific declarative instrumentation configuration #5361

Description

@mmanciop

Is your feature request related to a problem?

The OpenTelemetry Configuration specification defines a declarative configuration schema with language-specific instrumentation sections (e.g., instrumentation.python, instrumentation.java, instrumentation.dotnet). This allows users to configure instrumentations for different languages declaratively via one YAML file.

Currently, Python does not implement support for the instrumentation.python schema, even though the schema model is defined. This inconsistency across the OpenTelemetry ecosystem blocks the Linux system packages initiative in allowing users to configure monitoring for all their apps with one single file.

The OpenTelemetry Packaging SIG is designing Linux system packages (DEB/RPM) (design document, implementation) for OpenTelemetry auto-instrumentation. These packages are currently planned to ship with per-language declarative configuration files to manage instrumentation enablement and configuration due to the spotty support for language-specific overrides, and we seek to change that.

Describe the solution you'd like

Implement support for the instrumentation.python section in the Python SDK's declarative configuration loader, enabling users to:

  1. Enable/disable specific instrumentations by name under instrumentation.python.<instrumentation_name>
  2. Pass instrumentation-specific configuration options to each library
  3. Manage instrumentation configuration from a single YAML file alongside other SDK configuration

Describe alternatives you've considered

Shipping separate configuration files per language in the system packages, but that makes the life of end users unnecessarily complicated and toilsome.

Additional Context

No response

Would you like to implement a fix?

None

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions