scrape_configs
Тема дорожной карты · Prometheus
Раздел scrape_configs в конфигурационном файле prometheus.yml служит для определения всех заданий опроса, которые Prometheus будет выполнять для сбора метрик. В этом разделе задаются цели опроса, частота опросов, а также настройки аутентификации и обнаружения целей. Каждое задание опроса в scrape_configs содержит имя задания (job_name), опциональные параметры, такие как интервал опроса (scrape_interval) и время ожидания (scrape_timeout), путь к метрикам (metrics_path), протокол (http или https), а также настройки аутентификации. Кроме того, в scrape_configs можно задать статические конфигурации целей (static_configs) или использовать механизмы сервисного обнаружения, такие как kubernetes_sd_configs или file_sd_configs. Блок scrape_configs также поддерживает настройки переопределения меток (relabel_configs) перед опросом и манипуляции метками после опроса (metric_relabel_configs). Для каждого задания опроса Prometheus автоматически добавляет метки job и instance, что позволяет лучше организовать и структурировать метрики.
Как это работает
В разделе scrape_configs каждый элемент определяет задание опроса, которое включает имя задания (job_name), интервал опроса (scrape_interval) и время ожидания (scrape_timeout). Также можно задать путь к метрикам (metrics_path), протокол (scheme), настройки аутентификации (basic_auth, bearer_token, tls_config) и механизмы обнаружения целей (static_configs, kubernetes_sd_configs, file_sd_configs). Блок relabel_configs позволяет переопределять метки целей перед тем, как они будут опрошены, а блок metric_relabel_configs позволяет манипулировать метками после опроса.
Когда применять
scrape_configs особенно полезны в динамических средах, где используются механизмы сервисного обнаружения, такие как Kubernetes или Consul. В таких средах статические списки целей быстро устаревают, поэтому использование сервисного обнаружения является более предпочтительным. Интервал опроса (scrape_interval) следует подстраивать под конкретные потребности мониторинга и оптимизацию ресурсов. Например, для быстродействия мониторинга можно уменьшить интервал опроса, но это увеличит нагрузку на процессор и потребление памяти. Для медленно меняющихся метрик, таких как метрики диска узла, интервал опроса может быть увеличен до 60 секунд и более. Время ожидания опроса (scrape_timeout) должно быть меньше интервала опроса, чтобы избежать проблем с таймаутами.
Типичные ошибки
Одной из распространенных ошибок при настройке scrape_configs является установка времени ожидания (scrape_timeout) равным интервалу опроса (scrape_interval). Это может привести к тому, что таймаут будет забирать время следующего опроса. Другой распространенной ошибкой является опрос эндпойнтов, которые отвечают за более длительное время, чем установлен интервал опроса. Это может привести к каскаду таймаутов. Также важно не забывать опрашивать метрику up, которая указывает на успешность опроса. Если метрика up не опрашивается, невозможно будет алертировать на сбои опроса. К счастью, Prometheus автоматически генерирует эту метрику для каждого задания опроса.