- Distributes telemetry (traces, metrics, logs) across a pool of downstream collectors (backends).
- Ensures related telemetry stays “sticky” to the same backend using a routing key so downstream processors (e.g., tail-based samplers) can operate on complete data.
- Creates an OTLP sub-exporter per backend so each backend gets independent queuing, retries, and resilience behavior.
- Tail-based sampling: keep all spans of a trace together so downstream samplers can decide with full trace context.
- Sharding hot services: route high-volume services to a dedicated collector group.
- Metric scaling: shard metric streams across backends to balance ingestion.
Choose the routing key that preserves the data consistency you need. For tail-based sampling, prefer
traceID. For metric sharding, prefer metric or streamID.
Example: resolver types
- Per-backend sub-exporters: the load-balancing exporter instantiates an OTLP sub-exporter per backend so each backend maintains independent queues and retry behavior.
- Consistent mapping: the exporter hashes the selected routing key to consistently route items with the same key to the same backend.
- Resilience: combined with exporter-level queues and retry_on_failure settings, this delivers robust forwarding even during transient backend issues.




static resolver, exporter-level queuing, and retry settings. Adjust routing_key, resolver type, and timeouts to fit your deployment.
metricandstreamIDrouting keys are valid only for metrics; they are not applicable to traces or logs.- Select
staticfor fixed backend pools,dnsfor DNS-based discovery in cloud deployments, andk8sfor Kubernetes headless services. - Downstream backends must be able to handle the grouped load and any tail-sampling processors you plan to run.
- Monitor and tune per-backend queue sizes, retry settings, and OTLP timeouts to avoid dropped telemetry during spikes.