Skip to main content

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

FieldConstraint
sending_queue.num_consumersShould 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.

  • OTEL-048sending_queue explicitly disabled
  • OTEL-049sending_queue.queue_size below 10
  • OTEL-050sending_queue.queue_size above 50000

Version

Available since augur v0.1.0.

Further Reading

Resources