OTEL-065: sending_queue without persistent storage
Severity: warn (advisory)
Rule Details
With sending_queue enabled but no storage extension wired in, the queue lives entirely in RAM. Every restart — rolling deploy, OOM, node reschedule, cgroup kill — drops every batch that had not yet been exported. For any pipeline that carries transactional or billing-grade data, back the queue with the file_storage extension so unsent batches survive a restart.
This rule fires when an exporter has sending_queue.enabled != false and no sending_queue.storage configured.
Options
This rule has no options.
Examples
Avoid
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
queue_size: 5000
# no storage
Prefer
extensions:
file_storage/queue:
directory: /var/lib/otelcol/queue
exporters:
otlp/backend:
endpoint: backend:4317
sending_queue:
enabled: true
queue_size: 5000
storage: file_storage/queue
service:
extensions: [file_storage/queue]
When Not To Use It
Short-lived non-durable telemetry (local debug runs, ephemeral CI pipelines) where losing data on restart is acceptable.
Related Rules
- OTEL-017 — exporter missing
retry_on_failure/sending_queue - OTEL-048 —
sending_queueexplicitly disabled - OTEL-050 —
sending_queue.queue_sizeabove 50000 - OTEL-066 —
sending_queue.storagereferences undefined extension
Version
Available since augur v0.1.0.
Further Reading
- OpenTelemetry Collector Contrib — file_storage extension
- OpenTelemetry Collector — exporter helper configuration
Resources
- Rule source:
policy/main/reliability.rego