Skip to main content
The OpenTelemetry Collector is a service that receives telemetry, processes it, and exports it to one or more backends. It’s optional — most applications send spans directly from the SDK to Arize AX — but it unlocks centralized policy, multi-backend fan-out, dynamic routing, and tail sampling that the SDK can’t express. For practical Collector configuration including authentication and dynamic project routing, see Advanced Patterns: OTEL Collector. This page covers the concept.

Anatomy of a Collector

Collectors are composed of pipelines. Each pipeline chains three component types: All components and pipelines are defined in a single config.yaml. The Collector’s flexibility comes from how those components are composed.
OpenTelemetry Collector architecture: receivers → processors → exporters in a pipeline
For the canonical specification, see OpenTelemetry Collector documentation.

Deployment Models

Three common ways to deploy a Collector:

Common Use Cases

Reasons to put a Collector between your applications and Arize AX:

Common Pitfalls

A few Collector failure modes to know about:
  • Forgetting Arize AX authentication — the Collector needs to add arize-space-id and arize-api-key (or space_id/api_key) headers to outbound requests. Use the headers_setter extension or set them in the exporter configuration. Without them, the Arize AX collector rejects spans.
  • Modifying shared span objects across pipelines — when one pipeline mutates a span, every other pipeline that processes the same span sees the modification. Use a routing connector to duplicate spans cleanly before fan-out.
  • No batch processor at the end of the pipeline — for production volumes, the last processor in a pipeline should be a batch processor. Without it, the Collector exports one span at a time, which is inefficient.
  • Wrong Collector endpoint — applications need to point at the Collector’s OTLP endpoint (gRPC: :4317, HTTP: :4318), not at Arize AX directly. Mixing the two is a common source of “why are some spans missing?” debugging.
  • Receiver missing include_metadata: true — when a centralized gateway uses inbound request metadata for routing (e.g., reading the target Arize AX space from a header), the receiver has to be told to make that metadata available. Without it, the routing extension has nothing to read.

Where the Collector Fits

Both with and without a Collector, your application code looks the same — the Exporter points at an OTLP endpoint. The difference is just which OTLP endpoint:
Start without a Collector. Add one when you need centralized policy, multi-backend fan-out, tail sampling, or routing logic the SDK can’t express.

You’ve completed the OpenTelemetry and OpenInference reference

Every concept in this section — signals, the four OTel components, the Arize AX helpers, OpenInference conventions, span kinds, instrumentation approaches, context, sampling, and the Collector — is now in your toolbox. Time to instrument:

Set up tracing