天天看點

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

雲監控系統,可以做到實時的檢測雲産品的關鍵名額,并可自定義告警門檻值和發送告警的規則。配置監控的步驟比較簡單,跟着頁面提示勾勾選選即可完成。但是深究起來,發現裡面埋着很多數學計算的複雜邏輯。

本篇重點解決其中一種常見疑惑,告警通知與監控系統經常對不上,懷疑告警不準确。

問題背景:

1. mongo資料庫的告警通知:

告警内容:雲資料庫MongoDB | 雲資料庫(MongoDB)機關時間延遲次數(100ms以上)>2000次

告警對象:cmgo-xxxx

目前資料:4123次

觸發時間:2020-02-04 18:30:00(UTC+08:00)

持續時間:5分鐘

2. 檢視系統監控,對應時間最高700-800的樣子,并沒有通知的4123次。

下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。

2 條政策配置分别如下,均是根據5分鐘的監控資料做告警,但是差別較大:

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

政策名稱:mongo-1minute; 統計周期1分鐘,持續5個周期

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

政策名稱:mongo-5minute; 統計周期5分鐘,持續1個周期

差別一:統計周期不同。統計周期代表名額數值采集的粒度,以及對應會采用的不同的聚合方法。

差別二:持續周期不同。持續周期代表周期内,超過門檻值的采集點持續一定時間,才會觸發告警。

那麼兩個政策分别表示:

mongo-1minute: 使用采集粒度為1分鐘的監控,持續有連續6個采集點(5個間隔)的值大于100次,才會告警;

mongo-5minute: 使用采集粒度為5分鐘的監控,持續有連續2個采集點(1個間隔)的值大于100次,才會告警。

下面看控制台監控曲線:

預設頁面,顯示時間粒度為1分鐘,監控值在25次左右波動。

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

1分鐘粒度監控曲線

更換時間粒度為5分鐘,因為名額機關為次數,會經過sum聚合,名額值為125次左右波動。

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

5分鐘粒度監控曲線

可見監控資料采集粒度和聚合的方式不同,會得到不同的監控曲線。

那麼兩個告警政策,是否會觸發告警,哪個政策會觸發告警呢?

答案是:

mongo-5minute 觸發了告警,對應使用粒度5分鐘的曲線,連續2個點超過100,即觸發了告警。

mongo-1minute 沒有觸發告警,對應使用監控粒度1分鐘的曲線,沒有超過100次的點,是以沒有告警。

再舉一例,加深了解。

修改mongo-1minute 的門檻值為20次,其餘不變,那麼根據如下監控,18:45分取值20不符合大于20的條件,18:51時為第6個取值超過20的點(分别是18:46,18:47,18:48,18:49,18:50,18:51),觸發告警。

為何我的雲監控告警經常和監控值對應不上?問題背景:下面通過一個測試,詳細闡述告警政策配置和監控值之間的隐秘關系。最後回到最初的那個疑問,便比較容易解答。

政策名稱:mongo-1minute; 統計周期1分鐘,持續5個周期

當然,除了這裡舉例的名額采用的sum聚合方式外,還有Max、Min、Avg等不同的聚合方式,結合名額的真實含義來定義。

最後回到最初的那個疑問,便比較容易解答。

重新檢視雲監控的告警配置,發現采用的統計周期為5分鐘,更換監控粒度為5分鐘且sum的聚合方式後,檢視到對應時間峰值為4123,監控與告警完全一緻,符合預期。