- Low-latency capture of spans, metrics, and logs.
- Accurate enrichment with local metadata (host, pod, container).
- Resilience to transient network failures between workload and upstream collectors.
- Fine-grained local processing (filtering, batching, sampling) before forwarding.

- Local Collector (per-VM or per-node): collects telemetry, enriches it with local host/pod metadata, and performs lightweight processing (batching, local sampling).
- Team-level Collectors: aggregate telemetry from local collectors and apply team-specific rules such as additional filtering, sampling adjustments, or initial redaction.
- Central multi-tenant Collector: performs global concerns such as TLS termination, cross-team routing, PII redaction, and final aggregation before forwarding to observability backends.
| Deployment Type | Use Case | Example |
|---|---|---|
| Local/VM agent | Per-host telemetry capture and resource enrichment | Run a Collector as a systemd service on each VM |
| Node agent (DaemonSet) | Capture telemetry from all pods on a Kubernetes node | kubectl apply -f collector-daemonset.yaml |
| Sidecar | Per-pod isolation and localhost transport (lowest network hop) | Application -> localhost:4317 (OTLP gRPC) to sidecar |

- The sidecar Collector runs in the same Pod as the application and receives telemetry over localhost. This eliminates cross-pod network hops and improves isolation per application instance.
- Default OTLP gRPC port:
4317. Configure your SDKs/agents to export tolocalhost:4317when using a sidecar.
Agent deployment variants—choose based on operational constraints and goals:
- VM agent: per-host Collector for direct host metadata enrichment.
- Node agent (DaemonSet): scales across Kubernetes nodes to collect all pod telemetry per node.
- Sidecar: per-pod Collector for strict isolation and localhost transport (
localhost:4317).
- Enrich telemetry at the nearest point possible (agent) to preserve accurate context.
- Use local batching and retry policies in agents to smooth transient network issues.
- Place sensitive redaction and tenant-routing logic in centralized collectors to enforce consistent policies.
- Monitor agent resource usage to ensure lightweight operation on hosts and nodes.