Мой сервер Prometheus получает список консулов (или «сервисы» в конгломерации Консула) от Consul. Я только хочу отслеживать подмножество этих целей. Это должно быть возможно с помощью механизма регулярного выражения Прометея, но правильная конфигурация ускользает от меня. Как это делается?Прометей: как отбросить цель на основе тегов Consul
ответ
Я рыскал в Интернете, и есть не один пример, показывающий, как его сделали, поэтому для потомков - следующая конфигурация будет отбрасывать все услуги консула, отмеченные с «игнор-на-Прометея тег
# ignore consul services with 'ignore_at_prometheus' tag
# https://www.robustperception.io/little-things-matter/
relabel_configs
- source_labels: ['__meta_consul_tags']
regex: '(.*),ignore-at-prometheus,(.*)'
action: drop
Я использовал очень похожее решение проблемы, используя следующую конфигурацию. Это позволяет очищать только сервисы определенным тегом, а не исключать сервисы с заданным тегом.
Вот scrape_configs
часть моей конфигурации:
scrape_configs:
- job_name: 'consul_registered_services'
scrape_interval: 5s
metrics_path: '/prometheus'
consul_sd_configs:
- server: 'my-consul-server:8500'
token: 'xyz'
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '^.*,metrics_method=prometheus-servlet,.*$'
action: keep
- source_labels: ['__meta_consul_node']
target_label: instance
- source_labels: ['__meta_consul_service']
target_label: service
- source_labels: ['__meta_consul_tags']
target_label: tags
Я тогда не забудьте зарегистрировать все соответствующие службы с metrics_method=prometheus-servlet
теге, а остальные будут игнорироваться.
Документация по конфигурации перемаркировки доступна здесь: https://prometheus.io/docs/operating/configuration/#relabel_config.
Документацию по конфигурации обнаружения услуг Консула можно найти здесь: https://prometheus.io/docs/operating/configuration/#consul_sd_config.