全部產品
Search
文件中心

Application Real-Time Monitoring Service:建立Prometheus警示規則

更新時間:Aug 19, 2026

通過設定Prometheus警示規則,您可以為特定的監控指標設定條件觸發警示。滿足這些條件時,系統會產生相應的警示事件。為了接收這些警示通知,您需要配置警示通知策略,它可以將警示通過簡訊、電子郵件、電話、DingTalk群機器人、企業微信機器人或Webhook等多種方式發送給您。

前提條件

已接入Prometheus,具體操作,請參見:

功能入口

  1. 登入ARMS控制台

  2. 在左側導覽列,選擇Prometheus監控 > Prometheus告警规则

  3. Prometheus告警规则頁面,單擊创建Prometheus告警规则

通過靜態閾值建立Prometheus警示規則

靜態閾值檢查類型為您提供了一系列系統預定義的警示指標。通過選擇這些現有指標,您可以通過直觀的方式迅速建立相應指標的警示規則。

  1. 创建Prometheus告警规则版面設定以下警示參數。

    參數

    說明

    樣本

    警示名稱

    警示的名稱。

    生產叢集-容器CPU使用率警示

    檢測類型

    選擇靜態閾值

    靜態閾值

    Prometheus執行個體

    選擇需要建立警示的Prometheus執行個體。

    生產叢集

    警示分組

    選擇警示分組。

    不同Prometheus類型支援的警示分組不同,警示分組備選項會隨著選擇的Prometheus執行個體類型的不同產生變化。

    Kubernetes負載

    警示指標

    選擇想要配置警示的指標,每個警示分組對應不同的指標。

    容器CPU使用率

    警示條件

    基於警示指標預置內容設定警示事件產生條件。

    當容器CPU使用率大於80%時,滿足警示條件。

    篩選條件

    根據警示指標,設定當前配置的警示規則適用的範圍,即所有符合篩選條件的資源滿足此條警示規則時,均會產生警示事件。

    可選篩選條件包括:

    • 遍历:警示規則適用於當前Prometheus執行個體下的所有資源。篩選條件預設為遍曆。

    • 等於:選擇該條件後,需要繼續輸入具體資源名稱。所建立的警示規則將僅適用於對應資源。不支援同時填寫多個資源。

    • 不等於:選擇該條件後,需要繼續輸入具體資源名稱。所建立的警示規則將適用於除該資源之外的其他資源。不支援同時填寫多個資源。

    • 正則匹配:選擇該條件後,按需輸入Regex匹配相應的資源名稱。所建立的警示規則將適用於符合該Regex的所有資源。

    • 正則不匹配:選擇該條件後,按需輸入Regex匹配相應的資源名稱。所建立的警示規則將過濾符合該Regex的所有資源。

    說明
    • 完成篩選條件設定後,會彈出數據預覽地區。

    • 請將篩選條件字元限制在300個字元以內。

    遍曆

    資料預覽

    數據預覽地區展示警示條件對應的PromQL語句,並以時序曲線的形式展示當前警示規則配置的監控指標的值。

    預設僅展示一個資源的即時值,您可以在該地區的篩選框中選擇目標資源以及時間區間來查看不同時間區間和不同資源的值。

    說明
    • 警示閾值將會以一條紅色直線的形式顯示在時序曲線中,滿足警示閾值的時序曲線顯示為深紅色,不滿足警示閾值的時序曲線顯示為藍色。

    • 將滑鼠懸浮於時序曲線上,可以查看對應時間點的資源詳情。

    • 在時序曲線上選中一段時間,可以查看對應時間段的時序曲線。

    期間

    • 當警示條件滿足時,直接產生警示事件:任何一個資料點滿足閾值,就會產生警示事件。

    • 當警示條件滿足持續N分鐘時,才產生警示事件:即只有當滿足閾值的時間大於等於N分鐘時,才產生警示事件。

    期間不支援秒級配置,此為產品底層機制限制,非異常行為。

    1

    警示等級

    自訂警示等級。預設警示等級為默认,警示嚴重程度從預設、P4、P3、P2、P1逐級上升。

    預設

    警示內容

    使用者收到的警示資訊。您可以使用Go template文法在警示內容中自訂警示參數變數。

    命名空間:{{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器:{{$labels.container}} CPU使用率{{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%, 當前值{{ printf "%.2f" $value }}%

    警示通知

    • 极简模式:可以設定通知对象、通知時段重复策略

    • 普通模式

      • 不指定通知策略:若選擇此選項,當完成建立警示規則後,您可以在通知策略頁面建立通知策略並指定匹配規則和匹配條件(如警示規則名稱等)來匹配該警示規則。當該警示規則被觸發產生警示事件後,警示資訊會被發送給通知策略中指定的連絡人或連絡人群組。更多資訊,請參見通知策略

      • 指定某個通知策略:若選擇此項,ARMS會自動在對應的通知策略添加一條匹配規則,匹配規則內容為警示規則ID(以警示規則名稱的方式呈現),以確保當前警示規則產生的警示事件一定可以被選擇的通知策略匹配到。

      重要

      快速指定通知策略只能保證當前警示規則產生的警示事件一定能夠被所選的通知策略匹配到並且產生對應的警示。但是,當前警示規則產生的事件同時也可能被其它設定了模糊比對的通知策略匹配到並且產生警示。警示規則產生的警示事件和通知策略之間是多對多的匹配關係。

    不指定通知規則

    高级设置

    警示檢查周期

    指警示規則每隔N分鐘進行一次檢查,判斷資料是否滿足警示條件。預設1分鐘,最少設定1分鐘。即使介面填寫小於1分鐘的值(如15秒),系統仍按1分鐘執行檢測,此為產品底層機制限制,非異常行為。

    1

    資料完整後再檢查

    標籤

    設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。

    注釋

    設定警示的注釋。

  2. 設定完成後單擊儲存。在Prometheus警示規則列表頁面,您可以查看當前警示規則的狀態。

    如果該警示規則的状态自动中断,請您根據提示的中斷原因,對該警示規則進行重新編輯,並單擊启动,然後在彈出的對話方塊中單擊確認。如果您遇到無法解決的規則中斷問題,請聯絡ARMS警示服務DingTalk號(d9j_rg9e4062f)協助解決。

    可能導致警示規則狀態自動中斷的原因有以下幾種:

    • 規則查詢結果的數量超過1500。

    • 警示管理中未配置任何通知對象。

    • Prometheus執行個體處於已卸載或不可用狀態。

通過自訂PromQL建立Prometheus警示規則

如果需要對靜態閾值中系統預設指標之外的指標進行監控,您可以使用自訂PromQL檢測類型來建立警示規則。

  1. 创建Prometheus告警规则版面設定以下警示參數。

    參數

    說明

    樣本

    警示名稱

    警示的名稱。

    Pod的CPU使用率大於8%

    檢測類型

    設定為自訂PromQL

    自訂PromQL

    Prometheus執行個體

    選擇需要建立警示的Prometheus執行個體。

    參考警示分組

    選擇警示分組。

    不同Prometheus類型支援的警示分組不同,警示分組備選項會隨著選擇的Prometheus執行個體類型的不同產生變化。

    Kubernetes負載

    參考警示指標

    可選。參考指標中包括了常見指標的自訂PromQL配置方法,您可以選擇已有的類似指標來進行填充,然後參考對應指標的配置方式進行修改以完成警示配置。

    參考指標參數會根據選擇的Prometheus執行個體類型自動過濾支援的警示指標。

    Pod磁碟使用率警示

    自訂PromQL語句

    使用PromQL語句設定警示規則運算式。

    命名空間:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁碟裝置:{{$labels.device}} 使用率超過90%,當前值{{ printf "%.2f" $value }}%max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90

    資料預覽

    數據預覽地區展示警示條件對應的PromQL語句,並以時序曲線的形式展示當前警示規則配置的監控指標的值。

    預設僅展示一個資源的即時值,您可以在該地區的篩選框中選擇目標資源以及時間區間來查看不同時間區間和不同資源的值。

    說明
    • 將滑鼠懸浮於時序曲線上,可以查看對應時間點的資源詳情。

    • 在時序曲線上選中一段時間,可以查看對應時間段的時序曲線。

    期間

    • 當警示條件滿足時,直接產生警示事件:任何一個資料點滿足閾值,就會產生警示事件。

    • 當警示條件滿足持續N分鐘時,才產生警示事件:即只有當滿足閾值的時間大於等於N分鐘時,才產生警示事件。

    期間不支援秒級配置,此為產品底層機制限制,非異常行為。

    1

    警示等級

    自訂警示等級。預設警示等級為默认,警示嚴重程度從預設、P4、P3、P2、P1逐級上升。

    預設

    警示內容

    使用者收到的警示資訊。您可以使用 Go template 文法在警示內容中自訂警示參數變數。

    以下為 Pod 重啟警示模板寫法樣本,協助您快速配置可讀性強的警示通知內容:

    命名空間: {{$labels.namespace}}/Pod: {{$labels.pod_name}} {{$labels.metrics_params_time}}分鐘內重啟超過{{ $labels.metrics_params_value}}次,當前重啟 {{ $value }}次

    命名空間:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁碟裝置:{{$labels.device}} 使用率超過90%,當前值{{ printf "%.2f" $value }}%

    警示通知

    • 极简模式:可以設定通知对象、通知時段重复策略

    • 普通模式

      • 不指定通知策略:若選擇此選項,當完成建立警示規則後,您可以在通知策略頁面建立通知策略並指定匹配規則和匹配條件(如警示規則名稱等)來匹配該警示規則。當該警示規則被觸發產生警示事件後,警示資訊會被發送給通知策略中指定的連絡人或連絡人群組。更多資訊,請參見通知策略

      • 指定某個通知策略:若選擇此項,ARMS會自動在對應的通知策略添加一條匹配規則,匹配規則內容為警示規則ID(以警示規則名稱的方式呈現),以確保當前警示規則產生的警示事件一定可以被選擇的通知策略匹配到。

      重要

      快速指定通知策略只能保證當前警示規則產生的警示事件一定能夠被所選的通知策略匹配到並且產生對應的警示。但是,當前警示規則產生的事件同時也可能被其它設定了模糊比對的通知策略匹配到並且產生警示。警示規則產生的警示事件和通知策略之間是多對多的匹配關係。

    不指定通知規則

    進階設定

    警示檢查周期

    指警示規則每隔N分鐘進行一次檢查,判斷資料是否滿足警示條件。最少設定1分鐘。即使介面填寫小於1分鐘的值(如15秒),系統仍按1分鐘執行檢測,此為產品底層機制限制,非異常行為。

    1

    資料完整後再檢查

    標籤

    設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。

    注釋

    設定警示的注釋。

  2. 設定完成後單擊儲存。在Prometheus警示規則列表頁面,您可以查看當前警示規則的狀態。

    如果該警示規則的状态自动中断,請您根據提示的中斷原因,對該警示規則進行重新編輯,並單擊启动,然後在彈出的對話方塊中單擊確認。如果您遇到無法解決的規則中斷問題,請聯絡ARMS警示服務號(d9j_rg9e4062f)協助解決。

    可能導致警示規則狀態自動中斷的原因有以下幾種:

    • 規則查詢結果的數量超過1500。

    • 警示管理中未配置任何通知對象。

    • Prometheus執行個體已經卸載或不可用狀態。

管理警示規則

  • 對於在可觀測監控 Prometheus 版控制台的警示規則頁面建立的警示,包括靜態閾值、自訂PromQL警示,您可以進行編輯、啟動(警示狀態為已停止)、停止(警示狀態為運行中)、刪除、複製、查看警示事件歷史的操作。

  • 對於在阿里雲其他雲產品控制台產生的警示,您可以查看警示事件歷史、跳回雲產品警示列表。

修改警示規則後,已產生的未恢複警示事件仍按舊規則配置持續觸發。在警示發送歷史頁面認領並解決對應未恢複事件後,新規則在後續警示觸發時自動生效。

常見問題

為什麼警示恢複通知有延遲?

系統設計了最大容忍延遲機制,為防止 Agent 上報延遲導致漏報,警示引擎每次檢查會回溯最近 10 分鐘資料。即使指標已不滿足條件,仍需等待視窗期結束才確認恢複。

  • 恢複時效:實際恢複通知時間約為資料停止觸發後的 10 分鐘左右。

  • 機制說明:Prometheus 本身無自動回復邏輯,依賴 ARMS 檢測機制。

應用警示規則模板後通知策略丟失怎麼辦?

原因:模板本身不含通知策略配置,重新應用模板可能導致規則 ID 變化,使原通知策略中基於 _aliyun_arms_alert_rule_id 的匹配失效。

解決方案:進入警示管理 > 通知策略,找到對應策略,在指派條件中使用更穩定的標籤(如 alertname 或叢集名 cluster)替代規則 ID 進行關聯匹配。

修改警示運算式為 increase 後仍收到重複警示怎麼辦?

原因:若通知策略配置了"每隔 N 分鐘週期性通知"且結合"手動恢複",只要指標持續滿足新運算式條件,系統會不斷產生新警示事件。

解決方案:檢查並修改通知策略,將週期性通知改為"僅首次通知"或調整為"自動回復"模式;同時確認新運算式已正確儲存生效。

Prometheus 警示規則配置後無資料或未觸發如何排查?

按以下步驟逐項檢查:

  1. 檢查組件:確認 ACK 叢集是否安裝 kube-state-metrics 組件,若未安裝需補裝;檢查 Prometheus 組件狀態,必要時重裝 ack-arms-prometheus 組件。

  2. 驗證觸發記錄:單擊規則旁警示歷史查看是否有記錄。若無記錄,說明規則未真正滿足條件(如指標名錯誤、資料為空白或查詢時間範圍不對);若有記錄但未推送,檢查通知策略的指派規則(標籤、叢集名等)是否匹配。

  3. 推薦做法:建議使用新版經阿里雲驗證的警示模板,避免舊版模板誤判或不觸發。

  4. 語法檢查:若頁面報錯,檢查 PromQL 中正則匹配是否合法,例如 {pvc=~} 為空白會導致報錯,應改為 {pvc=~".*"} 或具體值。

ACS 叢集 Prometheus 監控 Pod 記憶體警示是否收費?

ACS 叢集支援 Pod 記憶體指標監控及警示。簡訊和語音警示會產生費用,但DingTalk機器人和 Webhook 警示免費。