配置報警策略的時候falcon支持多種報警觸發(fā)函數(shù)
all(#3): 最新的3個點都滿足閾值條件則報警
max(#3): 對于最新的3個點,其最大值滿足閾值條件則報警
min(#3): 對于最新的3個點,其最小值滿足閾值條件則報警
sum(#3): 對于最新的3個點,其和滿足閾值條件則報警
avg(#3): 對于最新的3個點,其平均值滿足閾值條件則報警
diff(#3): 拿最新push上來的點(被減數(shù)),與歷史最新的3個點(3個減數(shù))相減,得到3個差,只要有一個差滿足閾值條件則報警
pdiff(#3): 拿最新push上來的點,與歷史最新的3個點相減,得到3個差,再將3個差值分別除以減數(shù),得到3個商值,只要有一個商值滿足閾值則報警
exists(#2/3): 最新的3個點中有2個滿足條件則報警,不同于open-falcon,open-falcon使用 lookup(#2,3)
- 說明
最常用的函數(shù)是all函數(shù),cpu.idle all(#3) > 80,表示cpu.idle的值連續(xù)3次大于80%則報警
PerfCounter
PerfCounter是小米自己封裝的,一個用于打點、上報到Falcon的工具包。
引用后可以通過PerfCounter提供的靜態(tài)方法進行數(shù)據記錄,PerfCounter默認每5分鐘會將目前記錄的數(shù)據push到Falcon agent。
PerfCounter.count(key, count);
此方法在被使用時,除了會產生基本的COUNTER類型的數(shù)據,還會基于EWMA算法計算帶權重的指數(shù)移動平均值,包括1min/5min/15min,
單位: Counter per second。
這3個CPS值在程序內部每5秒刷新一次。
如何理解CPS-1-min all(#3) > 0.08 ?
我的理解是 每秒打點(EWMA算法計算后)0.08,5s上報一次即是0.40,1min有12個5s,即1min內有連續(xù)3次大于0.40就觸發(fā)報警。
Q:0.40對應次數(shù)是多少?這個值怎么選?
A:對比基本的COUNTER類型的數(shù)據,大概能找到出問題的CPS的閾值,然后調整即可。