Back to roadmap

intermediate ยท Module 2.2

OTel Collector Pipeline & Architecture

Learning Objectives

  • Explain the Collector's receiver -> processor -> exporter pipeline and the service.pipelines wiring.
  • Justify why memory_limiter and batch belong on every production pipeline path.
  • Design an agent (DaemonSet) + gateway (Deployment) topology for an OTT fleet.
  • Predict the linter warnings a pipeline missing memory_limiter or batch should raise.

Key Concepts

Receiver -> processor -> exporter

A Collector pipeline ingests via receivers (otlp), transforms via ordered processors (memory_limiter, batch, attributes), and ships via exporters (otlp, prometheus). The service.pipelines block wires which components form each traces/metrics/logs path.

memory_limiter first, batch before export

memory_limiter must be the FIRST processor so it can shed load and protect the Collector from OOM during a match-traffic spike. batch should sit just before the exporter to amortize network round-trips. Every production path needs both.

Agent + gateway topology

Run a lightweight agent Collector as a DaemonSet next to each node (cheap local batching, tag enrichment) that forwards to a horizontally scaled gateway Deployment doing heavier processing (tail sampling, routing) before export.

Why the linter matters

The OTel Builder sandbox lints your graph: a path with no memory_limiter risks OOM, a path with no batch wastes network, an unconnected node is dead config, and a receiver with no reachable exporter drops data silently.

Warning

Processor ORDER matters. Putting batch before memory_limiter means you buffer memory you may not have โ€” memory_limiter must run first to shed load.

Insight

Tail sampling belongs on the gateway, not the agent: only the gateway sees all spans of a trace, which is required to make a whole-trace keep/drop decision.

Info

generateYaml() in the sandbox is deterministic โ€” canonical key order and stable lists โ€” so the same graph always yields byte-identical YAML.

Production Configs & Runbooks

Production configs and runbooks are a Pro feature.


Knowledge Check

  1. 1. Which processor MUST be first in a production Collector pipeline, and why?

  2. 2. Where should the batch processor sit in the pipeline?

  3. 3. Why must tail sampling run on the gateway Collector rather than the per-node agent?

  4. 4. The OTel Builder linter flags a receiver whose data can never reach any exporter. Which warning is that?