OTEL-006: service.pipelines must be defined
Severity: deny (blocking)
Rule Details
service.pipelines is what actually wires receivers, processors, and exporters together. A config without any pipelines is syntactically valid but operationally inert — the Collector starts, logs nothing useful, and silently drops every signal. This is almost always an unfinished or broken config.
This rule fires when service.pipelines is missing entirely.
Options
This rule has no options.
Examples
Incorrect
receivers:
otlp:
protocols:
grpc:
endpoint: localhost:4317
exporters:
otlp/backend:
endpoint: backend:4317
service:
telemetry:
logs:
level: info
# pipelines block is missing
Correct
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlp/backend]
When Not To Use It
Never. If you do not want any telemetry to flow, do not run a Collector at all.
Related Rules
- OTEL-007 — every pipeline must have receivers and exporters
- OTEL-020 — unused receiver
- OTEL-021 — unused exporter
- OTEL-022 — unused processor
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/main.rego