Skip to main content
Receivers are responsible for getting data into the collector. They can be push-based (accepting data sent to them) or pull-based (actively fetching data from sources).

Core Receivers

OTLP Receiver

The OTLP receiver accepts telemetry data via the OpenTelemetry Protocol, supporting both gRPC and HTTP protocols.
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
Use Cases: Receiving metrics, traces, and logs from instrumented applications, other collectors, or OTLP-compatible agents. Documentation: OTLP Receiver

Host Metrics Receiver

Collects comprehensive system-level metrics from the host machine.
receivers:
  hostmetrics:
    collection_interval: 60s
    scrapers:
      cpu:
        metrics:
          system.cpu.utilization:
            enabled: true
      load:
        cpu_average: true
      memory:
        metrics:
          system.memory.utilization:
            enabled: true
      filesystem:
        metrics:
          system.filesystem.usage:
            enabled: true
          system.filesystem.utilization:
            enabled: true
      disk: {}
      network: {}
Metrics Collected: CPU usage, memory utilization, disk I/O, network traffic, filesystem usage, load average Documentation: Host Metrics Receiver

Infrastructure & Container Monitoring

Docker Stats Receiver

Linux only
Collects resource usage metrics from Docker containers.
receivers:
  docker_stats:
    endpoint: unix:///var/run/docker.sock
    collection_interval: 10s
    timeout: 20s
Metrics: Container CPU, memory, network I/O, block I/O statistics Documentation: Docker Stats Receiver

Kubernetes Receivers

Kubelet Stats Receiver

Collects metrics from the Kubernetes Kubelet API.
receivers:
  kubeletstats:
    auth_type: serviceAccount
    collection_interval: 30s
    endpoint: ${env:KM_NODE_NAME}:10250
    insecure_skip_verify: true
    metric_groups:
      - volume
      - node
      - pod
      - container
    metrics:
      k8s.container.cpu_limit_utilization:
        enabled: true
      k8s.container.memory_limit_utilization:
        enabled: true
      k8s.pod.cpu_request_utilization:
        enabled: true
Metrics: Pod resource usage, container metrics, volume metrics, node statistics Documentation: Kubelet Stats Receiver

K8s Cluster Receiver

Collects Kubernetes cluster-level metrics.
Metric CategoryExamples
NodesNode conditions, allocatable resources, capacity
PodsPod phases, container states, restarts
DeploymentsReplica counts, available replicas
ServicesService endpoints
Documentation: K8s Cluster Receiver

K8s Objects Receiver

Watches Kubernetes objects and converts them to log entries. Documentation: K8s Objects Receiver

K8s Events Receiver

Collects Kubernetes cluster events as structured logs. Documentation: K8s Events Receiver

Database Receivers

MySQL Receiver

receivers:
  mysql:
    endpoint: localhost:3306
    username: otel
    password: ${env:MYSQL_PASSWORD}
    collection_interval: 60s
Metrics: Connections, queries, buffer pool usage, InnoDB metrics, table locks Supported Versions: MySQL 5.7+ Documentation: MySQL Receiver

PostgreSQL Receiver

receivers:
  postgresql:
    endpoint: localhost:5432
    username: otel
    password: ${env:POSTGRES_PASSWORD}
    databases:
      - myapp
    collection_interval: 60s
Metrics: Database size, connections, transactions, tuple operations, index usage Supported Versions: PostgreSQL 9.6+ Documentation: PostgreSQL Receiver

MongoDB Receiver

Metrics: Database operations, connections, memory usage, replication lag Supported Versions: MongoDB 4.0+ Documentation: MongoDB Receiver

MongoDB Atlas Receiver

Collects metrics from MongoDB Atlas cloud service. Documentation: MongoDB Atlas Receiver

Redis Receiver

Metrics: Commands processed, memory usage, keyspace statistics, replication metrics Supported Versions: Redis 5.0+ Documentation: Redis Receiver

Additional Database Receivers

Oracle DB

Oracle Database metrics collectionDocumentation

SQL Server

Microsoft SQL Server 2012+ metricsDocumentation

SAP HANA

SAP HANA database monitoringDocumentation

Elasticsearch

Elasticsearch cluster metrics (7.x+)Documentation

Web Server & Application Receivers

Apache Receiver

receivers:
  apache:
    endpoint: http://localhost:8080/server-status?auto
    collection_interval: 60s
Requirements: Apache mod_status enabled Metrics: Requests, workers, uptime, traffic Documentation: Apache Receiver

Nginx Receiver

Requirements: Nginx stub_status module enabled Metrics: Active connections, requests, reading/writing/waiting states Documentation: Nginx Receiver

IIS Receiver

Windows only
Metrics: Requests, connections, bandwidth, application pool statistics Supported Versions: Windows Server 2016+ Documentation: IIS Receiver

RabbitMQ Receiver

Metrics: Queue depth, message rates, connections, channels, exchanges Supported Versions: RabbitMQ 3.8+ Documentation: RabbitMQ Receiver

Kafka Metrics Receiver

Metrics: Broker metrics, topic metrics, consumer group lag Supported Versions: Kafka 2.0+ Documentation: Kafka Metrics Receiver

Log Receivers

Filelog Receiver

Tails and parses log files with sophisticated multiline and parsing capabilities.
receivers:
  filelog/containers:
    include:
      - /var/log/pods/*/*/*.log
    exclude:
      - /**/*.gz
      - /var/log/pods/km-agent_*/**/*.log
    operators:
      - type: container
      - type: recombine
        combine_field: body
        is_first_entry: body matches "^(\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}|\\{)"
      - type: json_parser
        parse_from: body
Features: Multiline support, JSON parsing, custom operators, timestamp extraction Documentation: Filelog Receiver

Journald Receiver

Linux only
Collects logs from the systemd journal. Documentation: Journald Receiver

Syslog Receiver

Receives syslog messages over TCP or UDP. Supported Formats: RFC3164, RFC5424 Documentation: Syslog Receiver

Fluent Forward Receiver

Receives logs via Fluentd forward protocol. Compatible With: Fluentd, Fluent Bit Documentation: Fluent Forward Receiver

Cloud Platform Receivers

AWS CloudWatch Receivers

CloudWatch Logs

Collects log streams from AWS CloudWatch LogsDocumentation

CloudWatch Metrics

Fetches metrics from AWS CloudWatchDocumentation

Container Insights

ECS/EKS container insights dataDocumentation

ECS Container Metrics

Metrics from ECS task metadata endpointDocumentation

Azure Monitor Receiver

Collects metrics from Azure Monitor. Documentation: Azure Monitor Receiver

Google Cloud Monitoring Receiver

Collects metrics from Google Cloud Monitoring (formerly Stackdriver). Documentation: Google Cloud Monitoring Receiver

Additional Receivers

Prometheus Receiver

Scrapes Prometheus metrics endpoints.
receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'myapp'
          scrape_interval: 30s
          static_configs:
            - targets: ['localhost:8080']
Documentation: Prometheus Receiver

HTTP Check Receiver

Performs HTTP health checks and generates metrics. Use Case: Synthetic monitoring, endpoint availability Documentation: HTTP Check Receiver

SQL Query Receiver

Executes custom SQL queries to generate metrics. Use Case: Custom database metrics, business KPIs from databases Documentation: SQL Query Receiver

Network Receivers

Netflow

Network flow data collectionDocumentation

SNMP

SNMP trap and polling receiverDocumentation

vCenter Receiver

Collects metrics from VMware vCenter. Use Case: VMware infrastructure monitoring Documentation: vCenter Receiver

Receiver Configuration Best Practices

1

Set appropriate collection intervals

Balance between data freshness and resource usage. Infrastructure metrics typically use 60s, while application metrics may need 10-30s intervals.
2

Use environment variables for credentials

Never hardcode passwords or API keys in configuration files. Use ${env:VARIABLE_NAME} syntax.
3

Enable only needed metrics

Many receivers support selective metric enablement to reduce data volume and processing overhead.
4

Configure timeouts appropriately

Set timeouts based on network latency and source responsiveness to avoid blocking the collector.
5

Test configurations incrementally

Add receivers one at a time and verify they work before adding more to simplify troubleshooting.
Some receivers require specific permissions or network access. Ensure the collector has appropriate access to monitored systems before enabling receivers.

Next Steps

Configure Processors

Learn how to transform and enrich data from receivers

Setup Pipelines

Connect receivers to processors and exporters in pipelines

Build docs developers (and LLMs) love