全部產品
Search
文件中心

Managed Service for Prometheus:編輯RecordingRule.yaml

更新時間:Sep 28, 2024

本文介紹如何配置預彙總(Recording Rule)以及如何查看Recording Rule指標。

背景資訊

預彙總(Recording Rule)可以對落地的指標資料做二次開發。某些查詢可能需要在查詢端進行大量的計算,導致查詢端壓力過大,您可以配置預彙總規則將計算過程提前到寫入端,減少查詢端資源佔用,尤其在大規模叢集和複雜業務情境下可以有效降低PromQL的複雜度,從而提高查詢效能,解決使用者配置以及查詢慢的問題。

說明 Recording Rule的配置與開源Prometheus相同,以規則群組(Rule Group)的形式存在,每個規則群組可以有多條規則(Rules),彙總規則的名稱必須符合 Prometheus指標名稱規範。相同組中的規則以一定的間隔順序執行,預彙總後的指標按照新的規則名字存入遠端資料庫。

配置Recording Rule

  1. 登入ARMS控制台

  2. 登入Prometheus控制台

  3. 在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

  4. 在頁面左上方選擇目標地區,然後單擊需要配置Recording Rule的Prometheus執行個體名稱。
  5. 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯RecordingRule.yaml
  6. 在彈出的對話方塊,刪除預設範本並輸入預彙總規則,然後單擊儲存
    說明 同一個叢集只需要配置一份RecordingRule.yaml,不同規則群組(Rule Group)的名字必須不同。
    bc

    預彙總規則樣本:

    groups:
      - name: apiserver_request_total
        interval: 60s
        rules:
          - record: job_instance_mode:apiserver_request_total:avg_rate5m
            expr: avg by (job, instance, mode) (rate(apiserver_request_total[5m]))
            labels:
              team: operations
          - record: job:apiserver_request_total:sum_rate10m
            expr: sum by (job)(rate(apiserver_request_total[10m]))
            labels:
              team: operations
    參數說明
    groups規則群組。一份RecordingRule.yaml可以配置多組規則群組。
    name規則群組名稱。規則群組名稱必須唯一。
    interval(可選)規則群組的執行循環。預設60s。
    rules規則。一個規則群組可以包含多條規則。
    record規則的名稱。彙總規則的名稱必須符合 Prometheus指標名稱規範
    說明 預彙總規則命名的推薦格式level:metric:operations
    • level:表示彙總層級,以及規則的輸出標籤。
    • metric:表示指標的名稱。
    • operations:應用於指標的巨集指令清單,最新的操作在前面。
    expr計算運算式。可觀測監控 Prometheus 版將通過該運算式計算得出預彙總指標。計算運算式必須符合PromQL
    labels(可選)指標的標籤。

查看Recording Rule指標

方式一:從Grafana大盤查看

  1. 以管理員帳號登入本地Grafana系統。
  2. 在左側導覽列中選擇Explore
  3. Explore右側選擇對應的Kubernetes叢集名稱,然後在Metrics右側輸入Recording Rule指標名稱查看該指標的資料詳情。fg

方式二:從Prometheus控制台查看

  1. 登入Prometheus控制台

  2. 在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

  3. 在頁面左上方選擇目標地區,然後單擊需要查看Recording Rule指標的Prometheus執行個體名稱。
  4. 在左側導覽列的服務發現頁面,選擇指標頁簽,然後您可以在搜尋方塊中輸入對應的Recording Rule指標名稱來查看該指標的詳細資料。adf

Recording Rule支援Remote Write

可觀測監控 Prometheus 版的Recording Rule同開源Prometheus一樣,支援Remote Write功能。

  1. 登入ARMS控制台

  2. 登入Prometheus控制台

  3. 在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

  4. 在頁面左上方選擇目標地區,然後單擊需要配置Remote Write的Prometheus執行個體名稱。
  5. 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯Prometheus.yaml
  6. 在彈出的編輯Prometheus.yaml對話方塊中配置Remote Write。
    jk
    說明 配置Remote Write的方法與開源Prometheus配置方法相同。支援多組Remote Write配置,同時支援Write Relabel Config。
    Remote Write配置同時對Agent和Recording Rule組件生效。若只需要將Recording Rule產生的指標遠程寫(Remote Write)到其他庫,可配置對應的Write Relabel Config。樣本如下:
    remote_write:
      - url: "https://xxxx/api/v1/prom/write?db=dbname&u=username&p=password"    //遠程寫資料庫地址
        write_relabel_configs:
          - source_labels: [__name__]
            regex: job_instance_mode:apiserver_request_total:avg_rate5m
            action: keep
    說明 當前配置只會將Recording Rule指標( 即job_instance_mode:apiserver_request_total:avg_rate5m)遠程寫(Remote Write)到其他庫。

相關操作

對Recording Rule產生的新指標Remote Write,URL需要使用公網地址。如需對Recording Rule組件添加網路白名單,請根據地區添加對應的白名單。

 北京:101.200.XX.XX
 杭州:118.31.XX.XX
 上海:106.14.XX.XX
 深圳:8.129.XX.XX
 張家口:39.103.XX.XX
 青島:139.129.XX.XX
 成都:47.108.XX.XX
 中國香港:47.242.XX.XX
 新加坡:47.241.XX.XX

以上白名單的具體地址,您可以提交工單或者在DingTalk中搜尋Prometheus值班號(釘號:aliprometheus),聯絡產品技術專家擷取。