SkillByAIOpen interactive version →

Lesson 15 / 25

Deployment Patterns

Agents and gateways.

Agent, gateway or both

In the agent pattern, a Collector runs next to applications (a sidecar or a Kubernetes DaemonSet per node), receiving local OTLP traffic and adding host or pod metadata. In the gateway pattern, a central, horizontally scaled Collector service receives data from many agents or apps and handles sampling, filtering and export credentials. Many setups combine both. Applications can also export directly to a backend, but a Collector gives retries, batching, central configuration and the freedom to change backends.

Agent and gateway layout

A common Kubernetes topology.

node 1: [app pods] --OTLP--> [collector agent (DaemonSet)] --+
node 2: [app pods] --OTLP--> [collector agent (DaemonSet)] --+--> [collector gateway (Deployment, 3 replicas)]
                                                               |      tail sampling, redaction,
                                                               |      backend credentials
                                                               +--> backends (traces / metrics / logs)

Use load-balancing exporters for tail sampling

Tail sampling needs all spans of a trace on the same gateway instance; the loadbalancing exporter routes by trace ID.

Quick check: Where does an "agent" Collector usually run?

  • Close to the application, as a sidecar or one per node
  • Only inside the backend database
  • In the browser
  • On the developer laptop only
Answer

Close to the application, as a sidecar or one per node — Gateways are central.