报警函数说明
配置报警策略的时候open-falcon支持多种报警触发函数,比如all(#3)
diff(#10)
等等,这些#后面的数字表示的是最新的历史点。比如#3
代表的是最新的三个点。
all(#3): 最新的3个点都满足阈值条件则报警
max(#3): 对于最新的3个点,其最大值满足阈值条件则报警
min(#3): 对于最新的3个点,其最小值满足阈值条件则报警
sum(#3): 对于最新的3个点,其和满足阈值条件则报警
avg(#3): 对于最新的3个点,其平均值满足阈值条件则报警
diff(#3): 拿最新push上来的点(被减数),与历史最新的3个点(3个减数)相减,得到3个差,只要有一个差满足阈值条件则报警
pdiff(#3): 拿最新push上来的点,与历史最新的3个点相减,得到3个差,再将3个差值分别除以减数,得到3个商值,只要有一个商值满足阈值则报警
lookup(#2,3): 最新的3个点中有2个满足条件则报警
最常用的就是all
函数了,比如cpu.idle all(#3) < 5
,表示cpu.idle的值连续3次小于5%则报警。
lookup
为非连续性报警函数,适用于在一定范围内容忍监控指标抖动的场景,比如某个主机的cpu.busy忽高忽低,使用all(#1)>80
明显过于严格,会产生大量报警干扰视线,使用all(#3)>80
则连续三次偏高的概率很小,可能永远不会触发报警,不能帮助我们发现系统的不稳定,那么如果使用lookup(#3,5)
,我们就可以知道cpu.busy最近抖动频繁,超过了我们容忍的界线。
diff和pdiff理解起来没那么容易,设计diff和pdiff是为了解决流量突增突降报警。实在看不懂,那只能去读代码了:https://github.com/open-falcon/judge/blob/master/store/func.go