Lesson 8 / 25

Exporters

Metrics for things you did not write.

Translate other systems into metrics

Exporters expose metrics for software that does not speak Prometheus natively: node_exporter for Linux host metrics (CPU, memory, disk, network), blackbox_exporter for probing HTTP, TCP, DNS and ICMP endpoints from outside, and exporters for PostgreSQL, MySQL, Redis, Kafka, NGINX and many more. Kubernetes clusters commonly run kube-state-metrics (object state) and cAdvisor via the kubelet (container usage). Many modern systems expose /metrics natively.

Probing a website with blackbox_exporter

The common relabelling pattern for probes.

scrape_configs:
  - job_name: "website-probe"
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets: ["https://example.com", "https://example.com/health"]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target     # pass the URL to the exporter
      - source_labels: [__param_target]
        target_label: instance           # keep the URL as the instance label
      - target_label: __address__
        replacement: blackbox-exporter:9115   # actually scrape the exporter

Probe from outside too

Internal metrics can look healthy while users cannot reach the site; blackbox probes catch DNS, TLS and routing problems.

Quick check: Which exporter provides Linux host CPU, memory and disk metrics?

  • kube-state-metrics
  • blackbox_exporter
  • node_exporter
  • Alertmanager
Answer

node_exporter — Host-level metrics.