聯合容許Prometheus服務器從另外一個Prometheus服務器中截取選定的時間序列。git
聯邦有不一樣的用例。 一般,它用於實現可擴展的Prometheus監控設置或將相關指標從一個服務的Prometheus拉到另外一個服務。github
分層聯合容許Prometheus擴展到具備數十個數據中心和數百萬個節點的環境。 在此用例中,聯合拓撲相似於樹,較高級別的Prometheus服務器從較大數量的從屬服務器收集聚合時間序列數據。api
例如,設置可能包含許多高度詳細收集數據的每一個數據中心Prometheus服務器(實例級深刻分析),以及一組僅收集和存儲聚合數據的全局Prometheus服務器(做業級向下鑽取) )來自那些本地服務器。 這提供了聚合全局視圖和詳細的本地視圖。bash
在跨服務聯合中,一個服務的Prometheus服務器配置爲從另外一個服務的Prometheus服務器中提取所選數據,以便對單個服務器中的兩個數據集啓用警報和查詢。服務器
例如,運行多個服務的集羣調度程序可能會暴露有關在集羣上運行的服務實例的資源使用狀況信息(如內存和CPU使用狀況)。 另外一方面,在該集羣上運行的服務僅公開特定於應用程序的服務指標。 一般,這兩組指標都是由單獨的Prometheus服務器抓取的。 使用聯合,包含服務級別度量標準的Prometheus服務器能夠從羣集Prometheus中提取有關其特定服務的羣集資源使用狀況度量標準,以即可以在該服務器中使用這兩組度量標準。spa
在任何給定的Prometheus服務器上,/federate
端點容許檢索該服務器中所選時間序列集的當前值。 必須至少指定一個match[]
URL參數才能選擇要公開的系列。 每一個match[]
參數都須要指定一個即時向量選擇器,如up
或{job="api-server"}
。 若是提供了多個match[]
參數,則選擇全部匹配系列的並集。code
要將指標從一個服務器聯合到另外一個服務器,請將目標Prometheus服務器配置爲從源服務器的/federate
端點進行刮取,同時還啓用honor_labels
scrape選項(以不覆蓋源服務器公開的任何標籤)並傳入所需的 match[]
參數。 例如,如下scrape_config
將任何帶有標籤job="prometheus"
的系列或以job
開頭的度量標準名稱聯合起來:source-prometheus-{1,2,3}:9090
的Prometheus服務器進入抓取普羅米修斯:server
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 'source-prometheus-1:9090'
- 'source-prometheus-2:9090'
- 'source-prometheus-3:9090'
複製代碼
Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…內存