报警函数说明

配置报警策略的时候open-falcon支持多种报警触发函数,比如all(#3) diff(#10)等等,这些#后面的数字表示的是最新的历史点。比如#3代表的是最新的三个点。

  1. all(#3): 最新的3个点都满足阈值条件则报警
  2. max(#3): 对于最新的3个点,其最大值满足阈值条件则报警
  3. min(#3): 对于最新的3个点,其最小值满足阈值条件则报警
  4. sum(#3): 对于最新的3个点,其和满足阈值条件则报警
  5. avg(#3): 对于最新的3个点,其平均值满足阈值条件则报警
  6. diff(#3): 拿最新push上来的点(被减数),与历史最新的3个点(3个减数)相减,得到3个差,只要有一个差满足阈值条件则报警
  7. pdiff(#3): 拿最新push上来的点,与历史最新的3个点相减,得到3个差,再将3个差值分别除以减数,得到3个商值,只要有一个商值满足阈值则报警
  8. 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