The receivers most teams actually use
The OpenTelemetry Collector ships dozens of receivers, but a typical production deployment uses three to five. Knowing which ones cover the common cases saves a lot of time wading through the contrib repo.
otlp
The default receiver. Accepts OTLP HTTP and gRPC from any OpenTelemetry SDK. Use this in every Collector you run; it is the entry point for app-emitted traces, logs, and metrics.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318 filelog
Reads log files from disk, applies parsing operators (regex, JSON, container), and emits OTLP log records. The right tool for tailing application log files, container runtime logs, and host log directories like /var/log.
receivers:
filelog:
include: [/var/log/myapp/*.log]
start_at: end
operators:
- type: json_parser
parse_from: body hostmetrics
Scrapes the local host for CPU, memory, disk, filesystem, network, load, and process metrics. The OTel equivalent of Prometheus's node_exporter. Use it in every DaemonSet or host-installed Collector.
receivers:
hostmetrics:
collection_interval: 30s
scrapers:
cpu: {}
memory: {}
disk: {}
filesystem: {}
network: {}
load: {} kubeletstats
Talks to the kubelet stats API and emits per-pod and per-container CPU, memory, network, and volume metrics. Required for accurate per-pod observability in Kubernetes.
receivers:
kubeletstats:
collection_interval: 30s
auth_type: serviceAccount
endpoint: "https://${env:NODE_NAME}:10250"
insecure_skip_verify: true prometheus
Scrapes any Prometheus-format /metrics endpoint and converts to OTLP. The right way to pull from kube-state-metrics, node_exporter, or any third-party exporter you would otherwise scrape with a Prometheus server.
receivers:
prometheus:
config:
scrape_configs:
- job_name: kube-state-metrics
static_configs:
- targets: [kube-state-metrics:8080] jaeger
Accepts legacy Jaeger Thrift and gRPC traces. Use it during a migration from Jaeger client SDKs to OpenTelemetry SDKs so both kinds of services emit into the same backend.
receivers:
jaeger:
protocols:
thrift_http:
endpoint: 0.0.0.0:14268
grpc:
endpoint: 0.0.0.0:14250 syslog
Accepts syslog over UDP or TCP, RFC3164 or RFC5424. Useful for network devices, OS-level system messages, and legacy services that only know how to ship syslog.
receivers:
syslog:
udp:
listen_address: 0.0.0.0:514
protocol: rfc5424 k8sevents
Subscribes to the Kubernetes events API and emits each event as an OTLP log record. The fastest way to get "pod failed to schedule," "OOMKilled," and "image pull backoff" into your log search.
receivers:
k8s_events:
namespaces: [] docker_stats
Reads per-container stats from the Docker socket. Useful when you run Docker outside Kubernetes and want CPU and memory per container without an in-container exporter.
journald
Reads the systemd journal. Use this instead of filelog on hosts that send everything through journald (the default on most modern Linux distributions).
How to combine receivers in a pipeline
Receivers can be mixed and matched per pipeline. A typical Kubernetes DaemonSet Collector combines four receivers into three pipelines:
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, k8sattributes, batch]
exporters: [otlphttp/telemtra]
metrics:
receivers: [otlp, hostmetrics, kubeletstats]
processors: [memory_limiter, k8sattributes, batch]
exporters: [otlphttp/telemtra]
logs:
receivers: [otlp, filelog, k8s_events]
processors: [memory_limiter, k8sattributes, batch]
exporters: [otlphttp/telemtra] This single Collector handles app-emitted OTLP, container log files, Kubernetes events, node metrics, and pod metrics — and forwards all of it to Telemtra. See OpenTelemetry on Kubernetes for the full DaemonSet manifest.
How to pick which to enable
- Apps and SDKs → otlp.
- Files on disk → filelog (or journald on systemd hosts).
- Linux hosts → hostmetrics.
- Kubernetes pods → kubeletstats + k8s_events.
- Prometheus exporters → prometheus.
- Legacy Jaeger clients → jaeger.
- Network appliances and OS messages → syslog.
For protocol details see What is OTLP?. For a working starting pipeline, see the Collector quickstart. Start a Telemtra workspace to receive the output.