
处理和调试基于
SLO
的告警
|
129
假设你有一项服务,其
SLO
目标表明
99%
的单元将在移动的
30
天窗口内成功。在一个
典型的月份,该服务会看到
43 800
个单元。在过去的
24
小时内,该服务看到了
1440
个
单元,其中
50
个失败了。在过去的
6
小时内,该服务已看到
50
个单元,其中
25
个失败。
为了实现
99%
的目标,每月只允许
1%
的单元发生故障。基于典型的流量(
43 800
个单
元),仅允许
438
个单元发生故障(你的错误预算)。那么按照这个速度,是否会在接下
来的
24
小时内消耗掉你的错误预算?
线性推断逻辑中,你会计算出过去
6
小时内的
25
次故障意味着接下来的
24
小时内有
100
次故障,总共
105
次故障,远小于
438
次。
使用比例推断法,你会计算出在任何给定的
24
小时内,你预计会看到
43 800
个单元
/
30
天,或
1440
个单元。在过去的
6
小时里,
50
个单元中的
25
个(
50%
)失败了。如
果
50%
的比例故障率在接下来的
24
小时内继续存在,那么你将消耗掉
1440
个单元的
50%
,即
720
个单元,这远超
438
个单元的预算。通过这种比例计算就可以合理地预测,
你的错误预算将在大约半天内用完。此时应该触发一个告警,通知值班工程师立即进行
调查。
上下文感知消耗告警
使用上下文感知或历史消耗告警时,你要保留在
SLO
的整个窗口中发生的好事件和坏事
件的滚动总数,而不仅是基线窗口。本节介绍实现有效的消耗告警所需要进行的各种计
算。但是在实践这些技术时仍需谨慎行事。在每个评估间隔计算这些值的成本也可能会
很昂贵。在
Honeycomb ...