OTEL-041: Routing connector without default_pipelines
Severity: warn (advisory)
Rule Details
The routing connector forwards telemetry to different pipelines based on attribute values. If no default_pipelines is configured, any item that does not match a route is silently discarded. That is extremely easy to miss — the config passes validation, traffic flows for every route you tested, and the one route you forgot disappears. Always set a default (even if it is a debug pipeline you can grep).
This rule fires when a routing connector has no default_pipelines field.
Options
This rule has no options.
Examples
Avoid
connectors:
routing:
table:
- statement: route() where attributes["env"] == "prod"
pipelines: [traces/prod]
# no default_pipelines
Prefer
connectors:
routing:
default_pipelines: [traces/fallback]
table:
- statement: route() where attributes["env"] == "prod"
pipelines: [traces/prod]
When Not To Use It
You deliberately want unmatched telemetry dropped. In that case set default_pipelines: [] explicitly so the intent is documented.
Related Rules
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/pipeline.rego