Skip to main content

OTEL-050: sending_queue.queue_size above 50000 (OOM risk)

Severity: warn (advisory)

Rule Details

The sending queue holds batches in memory. At 50,000 batches × realistic batch sizes you are looking at gigabytes of buffered data that memory_limiter cannot see (the limiter protects the processor side, not the exporter side). When the downstream is slow for long enough, the queue fills, then the process OOMs. Use a persistent storage extension (OTEL-065) or cap the queue.

This rule fires when sending_queue.queue_size > 50000.

Options

FieldConstraint
sending_queue.queue_sizeShould be ≤ 50000

Examples

Avoid
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
queue_size: 100000 # oversized
Prefer
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
queue_size: 10000
num_consumers: 10
storage: file_storage/queue # persistent spill-over

When Not To Use It

An exporter writing to a very slow cold sink (object storage) where you genuinely need a large in-memory buffer. Pair with persistent storage.

  • OTEL-049sending_queue.queue_size below 10
  • OTEL-048sending_queue explicitly disabled
  • OTEL-065sending_queue without persistent storage

Version

Available since augur v0.1.0.

Further Reading

Resources