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.yamlwith a reason. - Incompatible: add to
datadog/unsupported.rswith aSeveritylevel. - Supported: add to the appropriate
datadog/*.rssubmodule.
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.
- Config
Classifier - Classifies the support level of config keys and determines if a value is default.
- Config
Key - A fully resolved configuration key, derived from a
SalukiAnnotationat registry init time. - Saluki
Annotation - Saluki-specific annotation for a single configuration key.
- Schema
Entry - Schema-derived metadata for a single configuration key.
Enums§
- Pipeline
- The ADP pipeline a config key affects.
- Pipeline
Affinity - Which pipelines a
SalukiAnnotationaffects. - Severity
- The
Severitylevel of a config key that Saluki doesn’t support. - Support
Level - How well saluki supports a given configuration key.
- Value
Type - The shape of a configuration value.
Type Aliases§
- Saluki
Annotation Ref - A reference to a
SalukiAnnotation, used as the element type ofALLslices generated bydeclare_annotations!.