Sizing, backpressure, memory, and upgrade discipline for agent, gateway, and tiered Collector topologies. Every config validated against otelcol-contrib v0.161.0, with a failure-pattern fingerprint table and a production checklist.
Receiver, processor, queue, backend - each link refuses, drops, or delays differently. Retries enabled is not lossless.
A queue measured in requests says nothing about spans or bytes. Use an items-based sizer and derive capacity from your outage objective.
memory_limiter goes first in every pipeline, coordinated with the pod limit and GOMEMLIMIT - the worked example uses 640 of 800 MiB.
retry_on_failure starts at 5s and caps at 30s. Retrying forever just hides a sick backend and fills the queue.
Sustained occupancy around 60–70% is the upstream scale-up signal - a starting point, not an SLO. Tune against your own drain rate.
One long-lived connection through an L4 balancer leaves a single replica hot while nine idle. Use L7/gRPC-aware balancing.
The queue is the earliest place trouble shows up. These internal metrics catch silent drops before they become missing dashboards - and the runbook shows how to route them on an independent path, so a sick pipeline never hides its own symptoms.
| Signal | What it tells you | Starting alert |
|---|---|---|
| otelcol_exporter_queue_size / queue_capacity | Backend is slower than ingress | Warning above 60% for 10m; page higher |
| otelcol_exporter_enqueue_failed_* | Queue full - data is being dropped now | Any sustained rise pages |
| otelcol_exporter_send_failed_* | Export path failing; retries burning budget | Ratio to sent, by signal type |
| otelcol_receiver_refused_* | Memory limiter shedding load | Any sustained rise warns |
| memory / CPU / restarts | Limiter miscoordination, OOMKill risk | Against pod limit and GOMEMLIMIT |
You run centralized Collector gateways and need sizing, alerting, and upgrade discipline you can defend in review.
You are consolidating collectors and need the topology trade-offs and routing rules written down before the migration.
You get paged for missing telemetry. The fingerprint table maps symptoms to likely causes and first checks.
You are planning Collector upgrades and want a zero-drop rollout pattern with measurable stop conditions.
Configs are validated against the contrib distribution v0.161.0. The Collector is pre-1.0, so the runbook builds re-validation and changelog review into the upgrade path itself.
No. Retries plus a queue reduce loss, but a queue that fills past capacity still drops data. The runbook treats backpressure as a chain and derives queue capacity from an outage objective instead of defaults.
From your outage objective: how long the backend can be down, your drain rate, and spike headroom. The default 1,000 requests is not capacity planning - an items-based sizer makes sizing predictable.
Match topology to failure domain. Agents stay light and close to the workload. A gateway centralizes policy and scaling. Tiered isolates stateful work like tail sampling onto consistently routed pools. Chapter 1 walks each pattern.
Only with durable storage. Ephemeral or node-bound volumes lose queued data on node replacement. The checklist requires persistent queue storage to be durable, monitored, and tested across restarts.
The full 15-source list, with URLs, is on the sources page of the PDF.
That is the standard this runbook holds your pipelines to. Get the full PDF - configs, fingerprints, checklist, and sources.
Get the runbook →