Components
The component library: receivers, processors, exporters, connectors, and extensions.
OpenTelemetry Collector pipelines are built from five kinds of components. Each has its own role and connection rules.
| Type | Role | Connections |
|---|---|---|
| Receiver | Receives telemetry from a source | Outgoing only |
| Processor | Transforms telemetry in flight | Incoming and outgoing |
| Exporter | Sends telemetry to a destination | Incoming only |
| Connector | Joins two pipelines, as the exporter of one and the receiver of the next | Both, across pipelines |
| Extension | Adds capabilities outside the data path | None |
To add a component, drag it from the palette onto the canvas. The palette is grouped by type, and each component is color-coded on the canvas.
The available components and fields depend on the collector version selected in the toolbar. The following lists cover the common set.
Receivers
| Receiver | Description |
|---|---|
otlp | OTLP over gRPC or HTTP. The most common entry point. |
prometheus | Scrape Prometheus metrics endpoints. |
datadog | Receive telemetry from Datadog agents. |
filelog | Tail and parse log files. |
hostmetrics | Host system metrics, such as CPU, memory, disk, and network. |
jaeger | Jaeger traces over gRPC, HTTP, or UDP. |
journald | Read the systemd journal as log records. Linux only; the collector needs the journalctl binary and read access to the journal. |
zipkin | Zipkin trace spans. |
k8s_cluster | Kubernetes cluster-level metrics. |
k8s_events | Kubernetes events. |
k8sobjects | Kubernetes object state. |
kubeletstats | Kubelet and container metrics. |
netflow | Network flow data. |
syslog | Syslog messages. |
statsd | StatsD metrics. |
Processors
| Processor | Description |
|---|---|
batch | Batch telemetry before export. Telflo recommends it on most pipelines to reduce export calls. |
memory_limiter | Limit collector memory use. Place it first when used. |
resource | Add or modify resource attributes. |
attributes | Add, update, or remove attributes on spans, data points, or logs. |
filter | Drop telemetry that matches a condition. |
probabilistic_sampler | Head-based sampling at a fixed rate. |
tail_sampling | Policy-based trace sampling after spans complete. |
k8sattributes | Enrich telemetry with Kubernetes metadata. |
redaction | Remove or mask attribute values. |
cumulativetodelta | Convert cumulative metrics to delta. |
resourcedetection | Detect resource attributes from the host and cloud environment. |
transform | Apply OTTL statements to telemetry. |
logdedup | Aggregate identical log records within an interval and emit one record with a duplicate count. Logs pipelines only. |
Exporters
| Exporter | Description |
|---|---|
otlp | OTLP over gRPC. The most common destination. |
otlphttp | OTLP over HTTP. |
datadog | Send traces, metrics, and logs to Datadog. |
prometheus | Expose pipeline metrics at a /metrics endpoint for a Prometheus server to scrape. Metrics pipelines only. |
loadbalancing | Distribute telemetry across backend endpoints. |
zipkin | Send trace spans to a Zipkin backend. |
clickhouse | Send traces, metrics, and logs to ClickHouse tables. ClickHouse performs best with large batched inserts; keep async inserts on or add a batch processor upstream. |
debug | Print telemetry to the collector console. |
file | Write telemetry to a file. |
Connectors
A connector is both an exporter and a receiver. It consumes telemetry at the end of one pipeline and emits telemetry into another, and it can change the signal type in between.
| Connector | Description |
|---|---|
spanmetrics | Generate request, error, and duration (RED) metrics from spans. |
forward | Forward telemetry of the same signal type between pipelines: merge several pipelines into one, or fan one out into many. The input and output signal types must match, and it has no configuration. |
routing | Route telemetry to different pipelines of the same signal type with an ordered table of OTTL conditions, for example by tenant, environment, or severity. Telemetry that matches no route goes to the default pipelines, or is dropped when none are set. The input and output signal types must match. |
Extensions
Extensions add capabilities that are not part of a pipeline.
| Extension | Description |
|---|---|
health_check | Expose an HTTP health endpoint. |
pprof | Expose a performance-profiling endpoint. |
zpages | Expose in-process debug pages. |
file_storage | Persist state to disk, such as file offsets and sending queues. |
Next steps
Connect components into pipelines. See Canvas & pipelines.
Last updated on