全部產品
Search
文件中心

:編輯RecordingRule.yaml

更新時間:Jul 06, 2024

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

背景資訊

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

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

配置Recording Rule

  1. 登入ARMS控制台

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

  3. 在頁面左上方選擇目標地區,然後單擊需要配置Recording Rule的Prometheus執行個體名稱。
  4. 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯RecordingRule.yaml
  5. 在彈出的對話方塊,刪除預設範本並輸入預彙總規則,然後單擊儲存
    說明 同一個叢集只需要配置一份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. 登入ARMS控制台

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

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

Recording Rule支援Remote Write

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

  1. 登入ARMS控制台

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

  3. 在頁面左上方選擇目標地區,然後單擊需要配置Remote Write的Prometheus執行個體名稱。
  4. 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯Prometheus.yaml
  5. 在彈出的編輯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),聯絡產品技術專家擷取。