Skip to main content

OTEL-022: Unused processor

Severity: warn (advisory)

Rule Details

A processor defined but not referenced in any pipeline is dead config — it is not applied to any data and no optimization happens. Most often this is the symptom of forgetting to wire memory_limiter or batch into a new pipeline you just added.

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

Options

This rule has no options.

Examples

Avoid
processors:
memory_limiter:
check_interval: 5s
limit_percentage: 80
batch:
timeout: 1s
attributes: # declared but never used
actions:
- key: env
value: production
action: upsert

service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlp/backend]
Prefer
processors:
memory_limiter:
check_interval: 5s
limit_percentage: 80
batch:
timeout: 1s
attributes:
actions:
- key: env
value: production
action: upsert

service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, attributes, batch]
exporters: [otlp/backend]

When Not To Use It

Rarely. If a processor is staged for a future rollout, wire it into a disabled pipeline or gate it at templating time so intent is visible.

  • OTEL-020 — unused receiver
  • OTEL-021 — unused exporter
  • OTEL-002memory_limiter must be included in every pipeline

Version

Available since augur v0.1.0.

Further Reading

Resources