Ответ
Exporter (экспортер) в экосистеме Prometheus — это специализированное приложение, которое собирает метрики из целевой системы (ОС, базы данных, веб-сервера, аппаратного устройства) и предоставляет их в текстовом формате, понятном Prometheus, через HTTP-эндпоинт /metrics.
Принцип работы (Pull-модель):
- Exporter запускается рядом с целевым приложением.
- Он собирает внутренние метрики приложения (например, количество подключений к БД) или системные метрики (например, загрузку CPU).
- Prometheus Server, согласно своей конфигурации (
scrape_configs), периодически опрашивает ("скармливает") endpoint экспортера. - Prometheus забирает и сохраняет метрики в своем временном ряду.
Типичная архитектура и примеры:
-
Экспортер как sidecar-контейнер (Kubernetes):
# Pod с приложением и экспортером для его метрик spec: containers: - name: my-app image: my-app:latest - name: prometheus-exporter image: prom/myapp-exporter:latest ports: - containerPort: 9102 # Порт, на котором exporter предоставляет /metrics -
Популярные официальные и community экспортеры:
node_exporter— метрики операционной системы (CPU, память, диск, сеть).mysqld_exporter/postgres_exporter— метрики баз данных.nginx-prometheus-exporter— метрики Nginx (stub_status или logs).cadvisor— метрики контейнеров.blackbox_exporter— метрики доступности endpoint (HTTP, TCP, ICMP).
Конфигурация Prometheus для сбора метрик с экспортера:
scrape_configs:
- job_name: 'node-exporter'
static_configs:
- targets: ['node-exporter-host:9100']
- job_name: 'custom-app'
static_configs:
- targets: ['app-host:8080'] # Если приложение само предоставляет /metrics
Exporter — это ключевой компонент, превращающий данные любой системы в метрики, пригодные для мониторинга в Prometheus.