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
| Field | Constraint |
|---|---|
sending_queue.queue_size | Should 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.
Related Rules
- OTEL-049 —
sending_queue.queue_sizebelow 10 - OTEL-048 —
sending_queueexplicitly disabled - OTEL-065 —
sending_queuewithout persistent storage
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/exporter.rego