2016-11-02 4 views
0

Мой сервер Prometheus получает список консулов ​​(или «сервисы» в конгломерации Консула) от Consul. Я только хочу отслеживать подмножество этих целей. Это должно быть возможно с помощью механизма регулярного выражения Прометея, но правильная конфигурация ускользает от меня. Как это делается?Прометей: как отбросить цель на основе тегов Consul

ответ

2

Я рыскал в Интернете, и есть не один пример, показывающий, как его сделали, поэтому для потомков - следующая конфигурация будет отбрасывать все услуги консула, отмеченные с «игнор-на-Прометея тег

# 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 
0

Я использовал очень похожее решение проблемы, используя следующую конфигурацию. Это позволяет очищать только сервисы определенным тегом, а не исключать сервисы с заданным тегом.

Вот 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.