2016-04-12 41 views
1

我們有多個在數據中心運行的Prometheus實例(我將它們稱爲DC Prometheus實例),和一個額外的普羅米修斯實例(我們稱之爲在下面的文本「主」),在這裏我們通過使用聯盟功能收集來自DC普羅米修斯情況的指標。如何使用聯邦從多個Prometheus實例(每個使用instance =「localhost:9090」)收集Prometheus的指標

主普羅米修斯被刮{作業=「普羅米修斯」}的值從本身,還從DC普羅米修斯實例(每個從本地主機刮:9090)。

問題是,主普羅米修斯抱怨外的順序樣本:

WARN上攝取[1585]錯誤外的順序樣本numDropped = 369源= target.go:475 =目標dc1-prometheus:443

我發現這是因爲在'match []'參數中包含{job="prometheus"}

我試圖通過標籤relabeling來解決這個問題,但是當我嘗試使用單個DC Prometheus和常量替換時,我無法使其工作(我仍然無法獲得樣本錯誤) ,我甚至不知道使用多個目標時,作爲替代使用什麼。

- job_name: 'federate' 
    scrape_interval: 15s 

    honor_labels: true 
    metrics_path: '/prometheus/federate' 
    scheme: 'https' 

    params: 
     'match[]': 
     - '{job="some-jobs-here..."}' 
     - '{job="prometheus"}' 

    relabel_configs: 
    - source_labels: ['instance'] 
     target_label: 'instance' 
     regex: 'localhost:9090' 
     replacement: '??' # I've tried with 'dc1-prometheus:9090' and single target only.. no luck 

    target_groups: 
     - targets: 
     - 'dc1-prometheus' 
     - 'dc2-prometheus' 
     - 'dc3-prometheus' 

我的問題是如何使用relabel_configs來擺脫無序錯誤。我在任何地方都使用普羅米修斯0.17。

回答

5

您需要在此處執行的操作是在每個數據中心Prometheus服務器上指定唯一的external_labels。這會使他們在/federate端點上添加這些標籤,並防止您遇到的衝突時間序列。

我的博客文章上建立聯盟普羅米修斯在這樣的情況下,一個例子:http://www.robustperception.io/scaling-and-federating-prometheus/

(我要補充一點,relabel_configs不能幫助你在這裏,因爲只有改變目標標籤metric_relabel_configs變化從什麼回來刮,見http://www.robustperception.io/life-of-a-label/

+0

非常感謝。這看起來很有希望,我會試一試! –

相關問題