OTEL-051: sending_queue.num_consumers below 2
Severity: warn (advisory)
Rule Details
num_consumers controls how many worker goroutines drain the sending queue in parallel. With just one worker, a single slow export — a tail-latency spike from the backend, a TLS handshake under load — stalls the queue until it completes. Two is the minimum for real concurrency; production workloads usually want 4–10.
This rule fires when sending_queue.num_consumers < 2.
Options
| Field | Constraint |
|---|---|
sending_queue.num_consumers | Should be ≥ 2 |
Examples
Avoid
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
num_consumers: 1
queue_size: 5000
Prefer
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
num_consumers: 10
queue_size: 5000
When Not To Use It
Backends that serialize all writes and fall over under concurrency. In that case you are trading throughput for correctness — acknowledge the warning only for that specific exporter.
Related Rules
- OTEL-048 —
sending_queueexplicitly disabled - OTEL-049 —
sending_queue.queue_sizebelow 10 - OTEL-050 —
sending_queue.queue_sizeabove 50000
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/exporter.rego