Scraping

Тема дорожной карты · Prometheus

Опрос (scraping) — это основной механизм сбора метрик в Prometheus. Этот процесс включает периодическую отправку HTTP GET-запросов на эндпоинт /metrics каждой настроенной цели. Ответы обрабатываются в текстовом формате экспозиции Prometheus, который содержит метрики и метаданные. Опросы выполняются согласно интервалу, заданному параметром scrape_interval в конфигурационном файле prometheus.yml. Prometheus фиксирует результат каждого опроса, устанавливая метрику up в 1 или 0 в зависимости от успешности запроса. Дополнительно, Prometheus добавляет метрики scrape_duration_seconds и scrape_samples_scraped, которые помогают мониторить состояние и производительность самого конвейера опроса. Поддержка опроса по HTTP и HTTPS с настраиваемыми параметрами scrape_timeout, TLS и аутентификацией позволяет создавать надёжные и гибкие системы мониторинга.

Как это работает

Процесс опроса начинается с конфигурации, заданной в разделе scrape_configs:. Здесь определяется имя задания (job_name), статические конфигурации (static_configs) или конфигурации сервис-дисcovery (kubernetes_sd_configs, consul_sd_configs, dns_sd_configs и т.д.). Также задаются параметры scrape_interval (дефолт 15 секунд), scrape_timeout, metrics_path (дефолт /metrics), scheme (http или https), аутентификация (basic_auth, bearer_token, tls_config). После этого, relabel_configs переписывает список таргетов перед отправкой запроса, а metric_relabel_configs — после получения ответа.

Когда применять

Опрос особенно полезен в динамических средах, где используются сервисы discovery, такие как Kubernetes, Consul или EC2 tags. В статических средах, где список целей не изменяется, можно использовать статические конфигурации. Однако, даже в статических средах, список целей может быстро устареть, если не управлять им должным образом. Интервал опроса (scrape_interval) следует настраивать в зависимости от потребностей системы. Например, для быстрой реакции на изменения, можно уменьшить интервал опроса, но это увеличит нагрузку на процессор и потребление хранинга. Для медленно меняющихся экспозиций, таких как метрики дисковых накопителей, интервал опроса может быть увеличен до 60 секунд или более.

Типичные ошибки

Одной из распространенных ошибок является настройка scrape_timeout равной scrape_interval. Это приводит к тому, что следующий опрос не может быть запущен, пока предыдущий не завершится. Также часто встречаются ситуации, когда эндпоинты отвечают дольше, чем задан scrape_timeout, что приводит к каскаду ошибок. Кроме того, важно не забывать опрашивать метрики up{...} для каждого задания, так как без них невозможно алертить на проблемы с опросом. К счастью, Prometheus автоматически генерирует эту метрику.

Связанные понятия

Полезные ресурсы