Prometheus學習系列(二十五)之聯邦

聯合容許Prometheus服務器從另外一個Prometheus服務器中截取選定的時間序列。git

1、用例

聯邦有不一樣的用例。 一般,它用於實現可擴展的Prometheus監控設置或將相關指標從一個服務的Prometheus拉到另外一個服務。github

1.1 分層聯合

分層聯合容許Prometheus擴展到具備數十個數據中心和數百萬個節點的環境。 在此用例中,聯合拓撲相似於樹,較高級別的Prometheus服務器從較大數量的從屬服務器收集聚合時間序列數據。api

例如,設置可能包含許多高度詳細收集數據的每一個數據中心Prometheus服務器(實例級深刻分析),以及一組僅收集和存儲聚合數據的全局Prometheus服務器(做業級向下鑽取) )來自那些本地服務器。 這提供了聚合全局視圖和詳細的本地視圖。bash

1.2 跨服務聯合

在跨服務聯合中,一個服務的Prometheus服務器配置爲從另外一個服務的Prometheus服務器中提取所選數據,以便對單個服務器中的兩個數據集啓用警報和查詢。服務器

例如,運行多個服務的集羣調度程序可能會暴露有關在集羣上運行的服務實例的資源使用狀況信息(如內存和CPU使用狀況)。 另外一方面,在該集羣上運行的服務僅公開特定於應用程序的服務指標。 一般,這兩組指標都是由單獨的Prometheus服務器抓取的。 使用聯合,包含服務級別度量標準的Prometheus服務器能夠從羣集Prometheus中提取有關其特定服務的羣集資源使用狀況度量標準,以即可以在該服務器中使用這兩組度量標準。spa

2、聯邦配置

在任何給定的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'
複製代碼
3、連接

Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…內存

相關文章
相關標籤/搜索