Skip to main content

OTEL-020: Unused receiver

Severity: warn (advisory)

Rule Details

A receiver defined in receivers: but not referenced in any service.pipelines.*.receivers: list will not receive anything — the Collector never starts it. These are almost always leftover from a refactor and cause a lot of confusion: "the config has otlp, why don't we see any traces?" Delete them or wire them up.

This rule fires when a receiver is declared but not used by any pipeline.

Options

This rule has no options.

Examples

Avoid
receivers:
otlp:
protocols:
grpc:
endpoint: localhost:4317
jaeger: # declared but unused
protocols:
grpc:

service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlp/backend]
Prefer
receivers:
otlp:
protocols:
grpc:
endpoint: localhost:4317

service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlp/backend]

When Not To Use It

Templated configs where a receiver is conditionally included by a deploy step may legitimately look "unused" to augur. If you can, gate the receiver at template level instead of leaving it dormant.

  • OTEL-021 — unused exporter
  • OTEL-022 — unused processor
  • OTEL-007 — every pipeline must have receivers and exporters

Version

Available since augur v0.1.0.

Further Reading

Resources