
处理和调试基于
SLO
的告警
|
123
框架开始,仔细研究时间这个完全相关的维度。
13.2 将时间定义成一个滑动窗口
首先选择是在一个固定窗口还是在一个滑动窗口中分析
SLO
。例如,从每月的第
1
天到
第
30
天就是一个固定窗口。与之相反的滑动窗口则着眼于显示任意过去
30
天的
SLO
情
况(如图
13-2
所示)。
图 13-2:3 天的滑动窗口(左)与 3 天的固定窗口(右)
对于大多数的
SLO
,
30
天是一个非常合适的窗口期。更短的如
7
天或
14
天的窗口期不
太能跟客户的可靠性认知或者产品的规划周期保持一致,而
90
天的窗口期往往又过长
了,从技术上来说,即使客户不同意,我们仍然可以在一天内消耗掉
90%
的预算,窗口
期过长则意味着异常的事件不会很快消失。
或许你可能会选择一个固定窗口先开始,但在实践中你会发现固定窗口的可用性目标并
不一定符合用户期望。比如当你为本月
31
号发生的某次故障向客户提出赔偿时,并不
能让客户容忍下个月
2
号再次发生的故障(即使在另外的固定窗口内是被允许的)。
正如第
12
章所提及的,
SLO
是被用作衡量客户体验和满意度的一种方式,而不是合法
性的约束。一个更好的
SLO
应该考虑到人类的情感、记忆和近期偏差,人类的情感并不
会因为自然月的过渡而突然消失。
如果你使用固定窗口来设置错误预算,这些预算会定期重置并带来明显的效果变化。任
何错误都会消耗预算的一小部分,其累积效应该逐渐下降到零。而这种逐渐减少的过程
不断地削减着团队主动应对问题的时间。但在固定窗口的模式下,突然间在新的一个月
的第一天,一切都被重置,你又开始了这个循环。 ...