如果您需要檢測的指標在正常狀態下起伏不定(例如RT和QPS),不同的時間段需要適配的告警閾值不同,那么您可以使用區間檢測功能,通過動態閾值對指標數據進行異常檢測。當數據點的異常突變超出預設的上下邊界時,系統將生成區間異常檢測事件,這種檢測主要用于監控趨勢穩定的數據或指標。
應用場景
應用性能監控:網站管理員可以使用此功能來監測站點的響應時間、請求速度等黃金指標。當某個服務的響應時間突然超出正常范圍,系統會立即發出異常警告,從而使管理員能夠快速定位和解決問題。
服務器資源優化:可以監測服務器的CPU和內存使用情況。如果某臺服務器的資源使用率持續超過預設閾值,那么系統會自動生成異常事件。有助于團隊及時調整資源分配,避免潛在的系統崩潰。
應用連接池分析:可以利用此功能來監控查詢速度、并發連接數等關鍵指標。當線程的某些指標超出正常范圍,系統會自動觸發異常事件,及時優化程序性能。
微服務架構監測:在微服務架構中,各個服務之間的交互和依賴關系復雜。通過此功能,團隊可以監測每個服務的資源使用和響應性能。當某個服務出現異常,可以迅速定位問題,確保整個系統的穩定運行。
示例:
某工作網站的訪問量在白天(例如10:00~18:00)訪問量低于1000是異常的,但在夜間(例如22:00~06:00)訪問量超過1000可能是被攻擊了。在這種場景下,指標的正常水位會隨著時間變化而不斷變化。 如果配置一個固定閾值,例如低于1000就告警,那白天訪問異常時可以正常收到告警通知,但夜間如果被攻擊則無法及時收到告警通知;如果使用區間檢測功能,就可以智能識別正常水位,自動更新閾值區間。
前提條件
已將應用數據上報至可觀測鏈路 OpenTelemetry 版,具體操作,請參見接入指南。
配置區間檢測
- 登錄ARMS控制臺。
在左側導航欄中選擇
。在應用監控告警規則頁面,選擇
。在創建告警規則頁面自定義告警名稱,并選擇告警檢測類型為區間檢測。
在告警對象區域根據需求選擇對應的告警應用、指標類型和篩選條件。
參數
說明
告警應用
選擇需要檢測的應用。目前區間檢測只支持對單個應用配置告警。
指標類型
選擇需要檢測的指標類型。更多信息,請參見告警規則指標說明。
選擇完成后,系統將自動計算上下邊界并進行實時渲染,您可以在告警條件區域預覽指標走勢。
說明不同的指標類型,告警規則的條件字段和篩選條件不同。
初次渲染耗時較久,大約需要2~4秒。
上下線邊界的計算原理,請參見閾值區間計算原理。
篩選條件
針對指標進行進一步的篩選過濾以縮短監控范圍。
告警指標的維度:
遍歷:會在告警內容中透出實際觸發告警的維度內容。
無:告警內容中透出這個維度所有數值的和。
= :告警中只透出當前設置維度的內容。
!=:告警中只透出不等于設置維度的內容。
包含:告警中只透出包含設置維度的內容。
不包含:告警中只透出不包含設置維度的內容。
正則匹配:告警中只透出正則匹配設置維度的內容。
在告警規則區域設置告警條件。
參數
說明
告警觸發模式
區間檢測只支持單條件的觸發,不支持多個觸發模式的組合。
告警條件
配置具體的告警條件,包含以下幾個因素:
最近X分鐘:選定監控的時間范圍,最多可選擇60分鐘。
指標度量:指代的是指標可以被量化的數據或值,此處根據不同指標類型有不同的度量方式,例如調用次數,調用響應時間等。
聚合方式:對指標數據的計算,包括平均值、最大值、最小值等,同樣會取決于指標和度量。
比對方式:對計算后的數據進行比對以查找出異常的點,在區間檢測中包括三種比對方式:
動態閾值上下界之外:系統會自動計算當前時間的上下界,如果發現有數據點位于上界或者下界之外,則為異常數據,觸發告警。
動態閾值上界之外:系統會自動計算當前時間的上下界,如果發現有數據點位于上界之外,則為異常數據,觸發告警。
動態閾值下界之外:系統會自動計算當前時間的上下界,如果發現有數據點位于下界之外,則為異常數據,觸發告警。
告警等級:從P1~P4 的告警等級設置,代表不同的嚴重程度。
在數據預覽區域,藍色線條代表實際的數據點,綠色區域即上下邊界范圍。
容忍度
基于系統自動計算的上下界為基礎進行邊界拉伸或者收縮,如果容忍度越高(向右滑動),則上下邊界越寬,那么數據被診斷為異常數據閾值越高,越不容易觸發告警;如果容忍度越低(向左滑動),則上下邊界越窄,那么數據被診斷為異常數據閾值越低,越容易觸發告警。
告警數預測
查看選定時間段內指標預計超出閾值的次數,單擊具體的告警數值,可以查詢歷史時間點觸發告警的指標數值。
每一次新建或修改告警規則時,都推薦您使用告警數預測功能,該功能通過算法對歷史數據進行分析,對選定時間段內進行告警數預測,方便您調整閾值。更多信息,請參見告警數預測功能說明。
設置告警通知和高級告警設置。
參數
說明
告警通知
極簡模式
通知對象:創建通知對象的操作,請參見告警通知對象。
通知時段:選擇告警通知時間段。
重復策略:
不需要升級策略,告警未恢復狀態下只發送一次。
設置重復頻率。當告警未恢復時,告警會以設置的重復頻率循環發送告警信息直至告警恢復。
普通模式
通知策略:
不指定通知規則:告警被觸發時不會發送告警,僅當通知策略的匹配規則被觸發時才會發送告警。
指定通知規則發送告警:告警被觸發時,ARMS通過指定通知策略的通知方式發送告警信息。您可以選擇已有的通知策略,也可以新建一個通知策略。更多信息,請參見通知策略。
高級告警設置
無數據情況
用于無數據、復合指標和環比同比等異常數據的修復。當告警指標沒有達到設置的條件時,告警數據修復為0、1或不觸發告警。
更多詳細信息,請參見告警管理名詞解釋。
設置完成后單擊保存。
閾值區間計算原理
ARMS的區間檢測功能主要基于Prophet算法。配置區間檢測任務之后,ARMS會在后臺以每24h一次的頻率,學習指標歷史7天數據的特征,提取指標趨勢性、季節性等特征,得到指標未來24h的預測曲線。再根據指標自身的波動情況,也就是誤差方差的大小,為未來一天指標的數據做出一個估計區間。在配置區間檢測告警時,可以預覽算法計算出來的上下邊界。下圖中,藍線是指標的實際值,綠色的陰影是上下邊界。
與靜態閾值推薦功能不同的地方在于,當業務變化導致指標正常水位發生變化后,無需通過手動編輯告警規則的方式更新閾值。這是因為ARMS持續地在以每天一次的頻率學習指標的特征,并只預測未來一天的上下邊界,因此,您無需多次手動調整閾值。
告警數預測功能說明
告警數預測功能通過算法對歷史數據進行分析,從而實現在選定時間段內對告警數進行預測,并展示歷史告警發生的時刻。幫助您設置告警靜態閾值或調整區間檢測的告警靈敏度。
告警數預測原理
ARMS會根據指標歷史24h數據,計算指標會超出每個閾值的次數來預測在該設定下告警的數量。并且,ARMS提供了指標詳細信息,您可以看到指標實際值超出閾值的具體時間。您可以根據這些信息調整閾值,以適配實際業務需求。