如果您正在编写基于系统处理请求的百分比错误率的bosun警报,那么如何编写它以处理低流量时段的方式。
例如:
如果我有一个回顾过去5分钟的警报,并计算出请求的错误率
$errorRate = $numberErr/$numberReq
然后如果errorRate超过预定义的阈值crit = $errorRate > 0.05
则触发警报只要每5分钟一段时间有足够多的请求($numberReq
),这就可以很好地工作。< / p>
如果5分钟内的请求数为10,000,则需要501错误才能触发警报。但是,如果5分钟内的请求数为100,那么触发警报只需要5个错误。
如何编写警报,处理请求数量太少以至于少量错误等同于大错误率的时段。我考虑过一个滑动时间窗口,而不是一个固定的5分钟时间,窗口的大小会增加,直到请求数量足够高,以便对警报有一定的信心。例如增加请求数量为10,000的时间段。
我找不到在bosun中实现这一目标的方法,而且我不想在更长的时间内提交警报,因为流量变化太大了。峰值流量期间较长的时段可能会导致实际错误,从而产生更大的影响。
答案 0 :(得分:0)
我通常将任何百分比和/或历史警报与静态阈值配对。
例如:crit = numberErr > 100 && $errorRate > 0.05
。这样,除非错误的数量也越过某个阈值,否则百分比部分并不重要,因为整个陈述都不会成立。