Skip to main content

Module config_registry

Module config_registry 

Source
Expand description

Configuration key registry.

A programmatic registry of all recognized configuration keys. Each entry describes the key purely from the configuration system’s perspective: its canonical YAML path, the environment variables that map to it, the shape of its value, and which internal config structs consume it.

This registry is intentionally free of Rust field names and struct internals—it models the configuration surface as an operator would see it, and can be used at runtime to detect unknown or unsupported keys in a loaded configuration file.

§User Guide

The config registry tests enforce uniqueness and completeness constraints similar to primary-key and unique constraints in a relational database. Every key in the vendored schema (core_schema.yaml) must appear in exactly one of two places: an annotation (SalukiAnnotation) or the ignored-keys list (etc/ignored_keys.yaml). No key may appear in both, and no key may appear twice within either list.

If a test fails, it means one of these constraints was violated. Common scenarios:

§Adding a Configuration Key

When Saluki gains support for a new key, add a SalukiAnnotation in the appropriate config_registry::datadog::* submodule with SupportLevel::Full or SupportLevel::Partial and a non-empty used_by list. If the key was previously in etc/ignored_keys.yaml, remove it from there. If it was previously SupportLevel::Incompatible, move it from datadog/unsupported.rs to the appropriate submodule and update its support level.

§Updating the Vendored Schema

After updating vendor/core_schema.yaml, rebuild to regenerate the schema module (the build.rs script handles this automatically). Any new keys will cause the all_schema_entries_are_annotated_or_ignored test to fail. For each new key, decide:

  • Irrelevant to ADP: add to etc/ignored_keys.yaml with a reason.
  • Incompatible: add to datadog/unsupported.rs with a Severity level.
  • Supported: add to the appropriate datadog/*.rs submodule.

If the update removed keys, the no_stale_entries test catches annotations or ignored entries that reference keys no longer in the schema. Delete the stale entries.

Modules§

datadog
Datadog Agent configuration registry entries.
generated
Generated schema entries from the vendored Datadog Agent config schema.
structs
Identifiers for known configuration structs.

Structs§

Classification
Result of classifying a single config key/value pair against the registry.
ConfigClassifier
Classifies the support level of config keys and determines if a value is default.
ConfigKey
A fully resolved configuration key, derived from a SalukiAnnotation at registry init time.
SalukiAnnotation
Saluki-specific annotation for a single configuration key.
SchemaEntry
Schema-derived metadata for a single configuration key.

Enums§

Pipeline
The ADP pipeline a config key affects.
PipelineAffinity
Which pipelines a SalukiAnnotation affects.
Severity
The Severity level of a config key that Saluki doesn’t support.
SupportLevel
How well saluki supports a given configuration key.
ValueType
The shape of a configuration value.

Type Aliases§

SalukiAnnotationRef
A reference to a SalukiAnnotation, used as the element type of ALL slices generated by declare_annotations!.