static_configs

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

Раздел static_configs внутри scrape_config Prometheus — простейший способ определить цели опроса, явно перечислив их адреса в виде статического списка без какого-либо динамического обнаружения сервисов. Каждая запись в static_configs содержит список targets из строк host:port и необязательную карту labels для добавления или переопределения значений меток для всех целей в этой группе — например, для добавления метки environment: production. Статические конфигурации, определённые в static_configs, применяются немедленно при запуске и не изменяются до перезагрузки prometheus.yml, что делает их подходящими для стабильных компонентов инфраструктуры, таких как базы данных или экспортёры оборудования, которые не меняются часто. Для сред, где цели меняются динамически (поды Kubernetes, группы автомасштабирования), предпочтителен механизм обнаружения сервисов, а не static_configs. Объединение static_configs с relabel_configs позволяет проводить дальнейшие манипуляции с метками — например, извлекать имя хоста из адреса цели в отдельную метку instance для более чистых дашбордов Prometheus.

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

static_configs: scrape_configs: определяет job_name, static_configs или service discovery (kubernetes_sd_configs, consul_sd_configs, dns_sd_configs и т.д.), scrape_interval (дефолт 15s), scrape_timeout, metrics_path (дефолт /metrics), scheme (http/https), basic_auth/bearer_token/tls_config для auth. relabel_configs переписывает список таргетов до scrape. metric_relabel_configs — после scrape.

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

Service discovery — в динамических средах (k8s, Consul, EC2 tags); статические списки гниют быстро. Подгоняйте scrape_interval под нужды alert resolution (быстрее = больше CPU + storage). Длиннее scrape_interval (60s+) — для медленно меняющихся экспозиций (node disk); 15s-точность не нужна. scrape_timeout < scrape_interval.

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

Ловушки static_configs: scrape_timeout равен scrape_interval (timeout крадёт следующий scrape); скрейп эндпойнтов, отвечающих > scrape_interval (каскад timeouts); не скрейпите up{...} для каждого job (без него нельзя алертить на "scrape валится" — к счастью Prometheus автогенерит эту метрику).

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

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