智能閾值警示是針對CloudMonitor中的雲資源執行個體的監控指標推出的智能警示功能,它自動適配並擬合監控指標的歷史資料,展示警示閾值邊界,發現監控指標突增或突降的異常行為,為您業務的穩定性提供保障。
什麼是智能閾值
智能閾值基於機器學習演算法動態識別歷史資料模式特徵(例如:監控指標的周期性、整體趨勢和波動大小等),並融合具體的雲產品的監控指標資訊,自動針對每個執行個體計算出上下閾值的警示邊界。
使用限制
智能閾值功能處於邀約測試階段,您可以提交工單申請。
應用情境
在不同業務情境下,雲資源執行個體的監控指標的數值水位、周期變化、方差波動等統計特點會呈現不同狀態,例如:您的流量日間大、夜間小,會導致ECS執行個體或CDN網域名稱的網關流量、訊息佇列任務堆積等監控指標出現日夜波峰和波穀;IO密集型業務和計算密集型任務會導致不同ECS執行個體的CPU或負載(load.1m
、load.5m
和load.15m
)出現不同負載水位。
由於單指標警示規則設定了固定的警示閾值,所以無法應對以上複雜情境,導致經常出現部分高負載執行個體持續警示,而低水位負載執行個體業務異常下達不到警示閾值或達到閾值後業務問題已持續半小時以上。因此,CloudMonitor為了更好地提升您的警示體驗,縮短異常問題發現時間,推出基於機器學習演算法結合專家規則經驗的智能閾值功能。其核心演算法可以動態識別歷史資料模式特徵,例如:監控指標的周期模式、波動、水位大小等,融合具體產品的監控指標資訊,自動針對每個執行個體產出上下閾值警示邊界。智能閾值警示可供您可視化查看演算法閾值效果,並提供不同敏感度調參能力,具備基本的白盒化功能。
產品優勢
智能閾值與單指標或多指標警示規則相比,優勢如下:
警示降噪
智能閾值會採集每個執行個體的指標資料,利用魯棒性時序分解和預測等模型適配,適應不同執行個體指標的資料水位和業務變化,並基於歷史警示聚類和相似性匹配,進一步過濾異常雜訊提升警示準確度,可以更有效地應對以下情境:
不同執行個體指標水位差異
例如:某遊戲行業擁有分別用於離線計算和線上服務的ECS執行個體,通常採取同樣的警示模板(CPU利用率、負載和記憶體使用量率等監控指標大於80警示),導致較高負載水位的執行個體出現持續誤判。
定時任務導致負載突增
例如:某使用者使用雲資料庫RDS作為儲存服務,且設定了每日零點定時清理30天以前的歷史資料的定時任務。但是當定時任務運行時,RDS的IOPS使用率瞬間接近100%產生警示,然後迅速恢複正常,每日定時發生誤判。
針對以上業務情境下,採用智能閾值警示可有效降低80%~90%的誤判,提升您對業務異常的關注和監控營運體驗。
自動異常發現
雲產品執行個體指標的異常問題通常由於上下遊業務、流量變化或雲執行個體部署應用、資料變更導致。智能閾值警示可以快速發現業務異常,例如:公網SLB執行個體串連、訊息佇列堆積量上漲等服務相關問題。您可以通過智能閾值檢測基礎資源ECS指標異常,輔助定位業務異常的根因。
當您配置單指標或多指標警示規則時,往往將閾值水位設定較高而避免過多誤判,且整體覆蓋應用分組或全部資源,無法針對具體業務和執行個體調優。智能閾值警示規則可以更快速、更精準地發現指標的突升或突降異常變化,且可以更有效地應對以下情境:
代碼變更後的指標異常發現
例如:某開發人員變更應用代碼後,程式發生記憶體泄露問題導致Full GC,CPU使用率明顯上漲,但無法觸發高水位的單指標警示。
業務不可用前的及時預警
例如:上遊業務流量的突然上漲,智能臨界值規則的異常快速發現能力,可以在達到高水位單指標閾值前警示,避免業務由於後續持續的高流量導致下遊整體業務不可用。
在以上業務情境下,智能閾值針對各主要雲產品的核心監控指標,可以有效地在指標異常發生3分鐘內召回85%以上問題及故障。
降低閾值配置維護成本
智能閾值無需輸入具體數值,只需要建立一條智能閾值警示規則,選擇對應的警示條件(邊界以外、高於上邊界和低於下邊界)即可完成閾值的相關設定,顯著降低配置維護成本,且可以更有效地應對以下情境:
配置閾值的具體數值
當您在配置ECS執行個體的流量、頻寬和QPS等沒有物理上限類型的監控指標的警示規則時,通常不知道設定什麼數值最為合適,這些監控指標的數值可能會有數量級的差異,無法找到通用且合適的數值。當ECS執行個體的流量、頻寬和QPS等監控指標的實際數值隨著營運變更或業務變化,而需要對閾值進行維護時,適當調整數值避免誤判或漏報。
多條規則實現不同閾值、不同時段的警示
當部分監控指標在不同時段有明顯的波峰或波穀時,需要配置多條規則並指定不同的生效時間來實現。
最佳實務
Elastic Compute Service基礎資源警示降噪
某使用者的單台Elastic Compute Service負責離線渲染任務,其他ECS負責線上業務支援。離線渲染使用的ECS記憶體使用量率明顯高於其他線上任務ECS。該使用者使用單指標警示規則時統一配置記憶體使用量率大於80%,負責離線渲染的ECS持續警示一周,警示200條,配置智能閾值後效果如下圖,一周警示5條以內,誤判收斂95%。
除了Elastic Compute Service的記憶體使用量率,其他指標也適用於警示降噪最佳實務,現推薦以下監控指標配置智能閾值警示規則。
典型異常 | 異常可能原因 | 監控指標 | 警示條件 |
負載過高、負載波動較大或負載持續峰值 | 系統資源不足、進程異常(死迴圈、記憶體泄露等)、進程數量突增、某些應用程式或系統服務在某些時候突然產生了大量的請求或資料處理操作。 |
| 高於上邊界 |
請求量突增、請求量波動較大或請求量持續峰值 | 應用程式或系統服務出現了異常;磁碟I/O效能不足、磁碟容量不足;某些應用程式或服務在某些時候進行了大量的磁碟讀或磁碟寫操作。 |
| 邊界以外 |
串連數過高、串連數波動較大或串連數持續峰值 | 系統負載過高、TCP串連池不足、應用程式或者服務出現異常,某些應用程式或者服務在某些時候進行了大量的TCP 串連操作。 | (Agent)network.tcp.connection_state | 邊界以外 |
雲資料庫RDS定時任務導致的誤判收斂
某使用者業務運行過程中包含每日淩晨清理歷史資料的定時任務,雲資料庫RDS的MySQL的QPS會在定時任務執行時瞬間飆升。單指標警示規則會在定時任務執行時觸發誤判,更改為智能閾值警示規則後不再出現定時誤判情況。
除了雲資料庫RDS的MySQL的QPS指標,還有其他指標也適用於定時任務的誤判收斂,現推薦以下監控指標配置智能閾值警示規則。
典型異常 | 異常可能原因 | 監控指標 | 警示條件 |
RDS執行個體效能波動較大 | 系統負載過高或資料庫連接池不足;應用程式或服務在某些時候進行了大量的查詢操作。 |
| 高於上邊界 |
Object Storage Service或CDN業務異常發現
作為業務的儲存依賴和加速內容分發最佳化組件,Object Storage Service和CDN的異常會直接影響業務功能的可用性,但一般情況下應用可用性監控無法覆蓋Object Storage Service和CDN組件的可用性,導致當Object Storage Service或CDN發生異常時無法觸發警示。
例如:CDN的BPS發生跌零現象,智能閾值可以及時發現並召回CDN異常,並發送警示通知。
使用智能閾值警示規則可以快速的對Object Storage Service和CDN做監控警示覆蓋,在服務不可用之前提前發現異常,現推薦以下監控指標配置智能閾值警示規則。
雲產品 | 典型異常 | 異常可能原因 | 監控指標 | 警示條件 |
Object Storage Service | 請求成功數突降或請求錯誤數突增 | 網路連接不穩定或存在問題;Object Storage Service檔案無許可權、不存在等;API調用自身代碼問題。 |
| 低於下邊界 |
| 高於上邊界 | |||
流量突增、流量突降、流量波動較大或流量持續峰值 | 網路連接不穩定或存在問題;應用程式或服務在某些時候發送了大量請求。 |
| 邊界以外 | |
CDN | 訪問量突增、訪問量突降、訪問量波動較大、訪問量持續峰值或回應時間增加 | 系統負載過高、緩衝不足、CDN節點不足;使用者訪問量突增;請求失敗後大量請求重試等。 | 邊緣網路頻寬 每秒訪問次數 下行流量 | 邊界以外 |
邊緣回應時間 | 高於上邊界 | |||
命中率下跌 | 需要請求來源站點,加速失效 | 邊緣位元組命中率 | 低於下邊界 |
訊息佇列Kafka版營運配置簡化
由於訊息佇列Kafka版的部分監控指標(例如:執行個體訊息發送次數、執行個體訊息消費條數等)量級和業務相關,以及不同Group和Topic訊息消費情況同樣差異顯著,使您難以設定一個通用的閾值適配不同業務下的訊息佇列監控,容易引發故障漏報或發現不及時等問題。
智能閾值可以憑藉自動化警示能力簡化警示規則配置和維護成本,2分鐘~3分鐘快速發現異常,有效降低業務的MTTR(故障恢複時間長度)。
例如:Kafka訊息堆積量突增,智能閾值及時召回異常並警示。
現推薦以下訊息佇列Kafka版的監控指標配置智能閾值警示規則。
典型異常 | 異常可能原因 | 監控指標 | 警示條件 |
流量突增或流量突降 | 大量使用者訪問應用程式或進行了某些大量資料轉送的操作;應用程式出現了異常或者網路流量被惡意程式佔用。 |
| 邊界以外 |
訊息堆積 | 系統資源不足、進程異常(死迴圈、記憶體泄露等)、進程數量突增、某些應用程式或系統服務在某些時候突然產生了大量的請求或資料處理操作。 |
| 高於上邊界 |
串連數過高、串連數波動較大或串連數持續峰值 | 系統負載過高、TCP串連池不足、應用程式或服務出現異常、某些應用程式或服務在某些時候進行了大量的TCP串連操作。 |
| 邊界以外 |