2016-11-02 55 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