雲計算

SLS新版告警入門——分組評估

在新版告警中,我們可以使用查詢分析語句來進行日誌查詢,並對結果集設置告警。其中,當我們希望對查詢結果進行進一步的分組時,可以使用我們的分組評估功能。

基本概念

分組評估是告警監控規則中的一個參數。當告警監控系統對查詢和分析結果進行計算時,可基於特定字段進行分組,每個分組單獨評估觸發條件並觸發告警。即您可以使用一條告警監控規則同時監控多個目標,並對每個分組進行獨立的告警管理和事件管理。

例如,我們的在時序庫中存儲了主機和 cpu 使用率的信息,通過查詢返回一個包含 IP 和 CPU 字段的結果集,如下圖:

image

這時候我們設置告警的評估條件為 CPU > 80, 那麼在任何一臺主機的 cpu > 80 的時候,都會觸發告警,若只是想要這樣的效果,那麼到這裡就可以了。

但這時候我們無法對不同的 ip 做不同的處理,如果想要更進一步,例如由於主機的歸屬不同,告警的時候想要通知不同的接受人,那麼就需要進行分組評估了。對 ip 進行分組之後。告警的評估條件會對每個分組進行單獨評估,最後根據評估結果進行告警。同時,分組的字段會自動加入 label 中,提供給之後的行動策略作為判斷條件。

簡單來說,如果我們不使用分組評估功能,而想要根據查詢結果的某個字段進行分組,並分別通過不同渠道告警,那麼只能通過在查詢語句中添加 group 語句,並創建多個告警來實現了。

使用場景示例:

CPU使用率

多個服務器的指標數據存儲在一個時序庫中,但希望每個服務器的CPU使用率(cpu_util)超過95%時,日誌服務可以分開發送每個服務器的告警信息。針對此需求,您可以在創建告警監控規則時設置分組評估。

image

在時序庫中,選擇我們要查詢的指標 cpu_util,這時會自動幫我們填入對應的查詢語句

* | select promql_query_range('cpu_util') from metrics limit 1000

點擊“另存為告警”按鈕

image

這時會打開新建告警界面,並會自動將剛才的查詢語句引入

image

點擊語句輸入框,可以查看詳情

image

可以看到項目,指標庫等詳細信息,並可以對查詢語句進行修改,點擊預覽可以查看數據圖表

image

返回剛才的界面,設置好告警觸發的條件為“有數據匹配” value > 95,這裡 value 即是指 cpu_util 的值

image

默認情況下,使用時序庫時,分組評估會自動選擇“標籤自動”選項,在該選項下,會自動對時序指標進行分組。

image

如果選擇不分組,那麼在當前狀況下,任意一臺或者多臺主機的 cpu 大於 95 都會觸發一次告警。

image

如果我們選擇標籤自定義,並選擇 ip 字段,那麼每次評估有一臺主機滿足條件會觸發一次告警,有多臺同時滿足的話,就會觸發多條告警。如果想要給不同的主機設置不同的告警接收人,需要配合行動策略進行設置。

image

在行動策略編輯時,可以指定條件和行動組,如下圖,

image

如之前所說,用於分組評估的字段會被加到標籤中,所以這裡就指定了 ip 作為條件,並指定對應的接收人。將行動策略保存之後,在告警編輯頁面進行選擇就可以完成全部的告警設置。

監控OSS訪問日誌

監控OSS訪問日誌時,希望每分鐘發生500錯誤超過1000次的Bucket可以分開告警。針對此需求,您可以在創建告警監控規則時設置分組評估。

在查詢框中輸入 http_status=500 可以查詢所有 http_status 為 500 的日誌記錄。

image

進一步將語句改為

http_status=500 | select bucket,count(1) as pv group by bucket  order by pv desc

image

可以看到各個 bucket 的記錄數。

image

我們將條件設到 pv > 60 得到一條結果。點擊右上角“另存為告警”

image

這裡我們將分組評估設置為 bucket 字段,同時將觸發條件設置為“有數據”

image

這樣就完成了告警的設置。如果想要對不同的 bucket 做不同的告警處理,可以參考 cpu 的場景在行動策略中進行設置。

Leave a Reply

Your email address will not be published. Required fields are marked *