如果您正在编写基于系统处理的请求的百分比错误率的 bosun 警报,您如何编写它以使其能够处理低流量时段。
例如:如果我有一个警报,它回顾过去 5 分钟并计算出请求的错误率
$errorRate = $numberErr/$numberReq
,然后在 errorRate 超过预定义阈值时触发警报,crit = $errorRate > 0.05
只要每 5 分钟有一个足够多的请求($numberReq
)。
如果 5 分钟内的请求数为 10,000,则需要 501 个错误才能触发警报。但是,如果 5 分钟内的请求数为 100,则只需 5 个错误即可触发警报。
我如何编写一个警报来处理请求数量如此之低以至于少量错误将等同于大错误率的时期。我曾考虑过一个滑动的时间窗口,而不是固定的 5 分钟时间段,在这个时间段内,窗口的大小会增加,直到请求数量足够高,从而对警报产生一定的信心。例如,增加时间段,直到请求数为 10,000。
我无法在 bosun 中找到实现这一目标的方法,而且我不想为我的警报投入更长的时间,因为流量变化很大。高峰流量期间的较长时间可能会导致实际错误,从而产生更大的影响。