本文介紹如何配置預彙總(Recording Rule)以及如何查看Recording Rule指標。
背景資訊
預彙總(Recording Rule)可以對落地的指標資料做二次開發。某些查詢可能需要在查詢端進行大量的計算,導致查詢端壓力過大,您可以配置預彙總規則將計算過程提前到寫入端,減少查詢端資源佔用,尤其在大規模叢集和複雜業務情境下可以有效降低PromQL的複雜度,從而提高查詢效能,解決使用者配置以及查詢慢的問題。
說明 Recording Rule的配置與開源Prometheus相同,以規則群組(Rule Group)的形式存在,每個規則群組可以有多條規則(Rules),彙總規則的名稱必須符合 Prometheus指標名稱規範。相同組中的規則以一定的間隔順序執行,預彙總後的指標按照新的規則名字存入遠端資料庫。
配置Recording Rule
登入ARMS控制台。
在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。
- 在頁面左上方選擇目標地區,然後單擊需要配置Recording Rule的Prometheus執行個體名稱。
- 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯RecordingRule.yaml。
- 在彈出的對話方塊,刪除預設範本並輸入預彙總規則,然後單擊儲存。說明 同一個叢集只需要配置一份RecordingRule.yaml,不同規則群組(Rule Group)的名字必須不同。
預彙總規則樣本:
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大盤查看
- 以管理員帳號登入本地Grafana系統。
- 在左側導覽列中選擇Explore。
- 在Explore右側選擇對應的Kubernetes叢集名稱,然後在Metrics右側輸入Recording Rule指標名稱查看該指標的資料詳情。
方式二:從Prometheus控制台查看
在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。
- 在頁面左上方選擇目標地區,然後單擊需要查看Recording Rule指標的Prometheus執行個體名稱。
- 在左側導覽列的服務發現頁面,選擇指標頁簽,然後您可以在搜尋方塊中輸入對應的Recording Rule指標名稱來查看該指標的詳細資料。
Recording Rule支援Remote Write
可觀測監控 Prometheus 版的Recording Rule同開源Prometheus一樣,支援Remote Write功能。
登入ARMS控制台。
在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。
- 在頁面左上方選擇目標地區,然後單擊需要配置Remote Write的Prometheus執行個體名稱。
- 在左側導覽列的設定頁面單擊設定頁簽,然後單擊編輯Prometheus.yaml。
- 在彈出的編輯Prometheus.yaml對話方塊中配置Remote Write。說明 配置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),聯絡產品技術專家擷取。