Skip to main content
In this lesson we cover how receivers act as the Collector’s entry points: they listen for telemetry (traces, metrics, logs) from applications, services, and systems, translate incoming formats into the Collector’s internal representation, and hand data off to processors and exporters. Receivers support multiple protocols, standard ports, and custom configuration to meet a wide range of telemetry collection scenarios.
Receivers are the first stage in the Collector pipeline. Configure them to match your instrumented applications, Prometheus endpoints, host agents, or legacy systems so the Collector can consistently process and export telemetry.
The image is a collector architecture diagram illustrating a system where applications, services, and systems send traces, metrics, and logs to a "Receiver," which then communicates with a "Processor."
Receivers accept telemetry over different protocols (gRPC, HTTP, Thrift, etc.) and usually listen on the standard ports listed below. You can override ports to avoid conflicts or to comply with network policies.
Different protocols use different standard ports. Receivers listen on these ports and accept data over multiple protocols. You can also use custom ports if needed, provided the port is free.
The image illustrates how receivers listen using different protocols, each with specified standard ports: gRPC (4317), HTTP (4318), Thrift (55680), and a customizable port labeled "my_port" for others.
Here is a concrete Python example that configures an OTLP gRPC exporter to send spans from an instrumented app to the Collector on port 4317:
If you need to receive traces, metrics, and logs from multiple sources, register multiple receivers under the receivers: key. For example, the Collector can expose OTLP endpoints, scrape Prometheus metrics, and tail log files concurrently:
Below are concise descriptions and canonical configuration examples for commonly used receivers. Use these as templates to assemble the appropriate collection surface for your monitoring stack. Receiver summary table
ReceiverPurpose / Use caseTypical port / notes
OTLPPrimary gateway for instrumented apps; accepts traces, metrics, logsgrpc: 4317, http: 4318
PrometheusScrapes Prometheus endpoints and converts metrics to OTLPUses Prometheus scrape configs
hostmetricsCollects CPU, memory, disk, network for host-level observabilityRun Agent (DaemonSet) for host-level metrics
kubeletstatsPulls pod/container metrics from kubelet on each nodeConnects to kubelet API (10250)
k8s_clusterGathers cluster-wide metrics and node conditionsUse as single-replica Deployment
k8sobjectsCaptures Kubernetes objects (events, pods, services)Best as single-replica Deployment
filelogTails and parses log files, supports rotation & compressionFile paths and patterns
journaldReads systemd journal logsFilter by units and log levels
syslogListens for syslog messages over TCP/UDPRFC formats; ports 514 (UDP/TCP)
SNMPPolls network/IoT devices for metricsudp://<host>:161
JaegerAccepts Jaeger traces, translates to OTLPMultiple ports/protocols for Jaeger clients
ZipkinReceives Zipkin spans (V1/V2 JSON)Default port 9411
OpenCensusFor legacy OpenCensus telemetryDefault port 55678
OTLP receiver
  • Primary gateway for instrumented apps.
  • Accepts OpenTelemetry Protocol data via gRPC and HTTP for traces, metrics, and logs (same endpoint for all signal types).
Prometheus receiver
  • Scrapes metrics from Prometheus endpoints and forwards them as OTLP.
  • Uses standard Prometheus-style config and service discovery.
Host metrics receiver
  • Collects system-level metrics (CPU, memory, disk, network).
  • Useful when running the Collector as an agent to capture host performance.
Kubelet stats receiver
  • Pulls pod- and container-level metrics directly from the kubelet on each node.
  • Typically run as a DaemonSet so each Collector instance can contact its local kubelet.
Kubernetes cluster receiver
  • Gathers cluster-wide metrics and node conditions by querying the Kubernetes API.
  • Best run as a Deployment (single replica) to avoid duplicate cluster-level data.
Kubernetes objects receiver
  • Captures Kubernetes objects (events, pods, services) as structured logs or telemetry.
  • Run as a Deployment with one replica to prevent duplicate events.
Run node-level receivers (like kubeletstats) as DaemonSets. Run cluster-level receivers (like k8s_cluster and k8sobjects) as a Deployment with one replica to avoid duplicate data.
File log receiver
  • Tails log files, supports compressed files, handles rotations, and persists file positions across restarts.
Journald receiver
  • Reads logs from systemd journal units and supports filtering by unit and log level.
  • Useful for collecting system and container logs on Linux hosts.
Syslog receiver
  • Listens for syslog messages over TCP or UDP (RFC formats).
  • Common for network devices, firewalls, and centralized syslog collection.
SNMP receiver
  • Polls network or IoT devices via SNMP to collect metrics (e.g., uptime, interface counters).
Jaeger receiver
  • Accepts traces from Jaeger clients/agents and translates them to OTLP — useful when migrating from Jaeger.
Zipkin receiver
  • Receives Zipkin spans (V1/V2 JSON) and converts them into OTLP for unified processing.
OpenCensus receiver
  • Ingests telemetry from applications still using OpenCensus and converts traces and metrics to OTLP.
The image lists popular receiver types for data collection, including OTLP Receiver, Prometheus Receiver, and Hostmetrics Receiver, with their respective functions.
Receivers enable unified collection of traces, metrics, and logs from different sources on the same Collector. They translate incoming formats into the Collector’s internal representation, allowing processors and exporters to operate consistently across signals and sources.
The image depicts a collector pipeline diagram illustrating data flow from sources like applications, services, and systems through receivers (OTLP, Jaeger, Prometheus), then to processors, and finally to exporters. It outlines the stages of data processing and exporting.
There are many more receivers available (especially in the opentelemetry-collector-contrib repository) beyond those shown here — including integrations for legacy protocols and vendor-specific sources. Receivers are the starting point of your telemetry journey: they listen, collect, and translate incoming telemetry so the rest of your Collector pipeline can process and export it reliably. References and further reading That’s all about receivers.

Watch Video