2016-11-02 56 views
0

我的Prometheus服务器从Consul获得其目标(或Consul行话中的“服务”)列表。我只想监视这些目标的一个子集。这应该可以通过普罗米修斯的正则表达式机制,但正确的配置避开了我。这是如何完成的?普罗米修斯:如何根据Consul标签丢弃目标

回答

2

我已经冲刷网页并没有显示出它如何完成的,所以为后人只举一个例子 - 下面的配置会下降标志着所有领事服务与“忽略-AT-普罗米修斯”标签

# 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

Consul服务发现配置的文档可在此处获得:https://prometheus.io/docs/operating/configuration/#consul_sd_config