SLO 告警策略详解
1. 持续时间子句
在过滤极短时间内的临时噪声时,持续时间子句偶尔会很有用。不过,我们也需要了解它的缺点。
多数监控系统允许在告警条件中添加持续时间参数,这样只有当指标值在一段时间内持续高于阈值时,告警才会触发。例如:
- alert: HighErrorRate
expr: job:slo_errors_per_request:ratio_rate1m{job="myjob"} > 0.001
for: 1h
下面是使用持续时间参数进行告警的优缺点:
| 优点 | 缺点 |
| — | — |
| 告警精度更高。要求在触发告警前有持续的错误率,意味着告警更有可能对应重大事件。 | 召回率低且检测时间长。由于持续时间不会随事件严重程度而变化,100% 中断和 0.2% 中断的检测时间相同。如果指标值哪怕瞬间回到 SLO 范围内,持续时间计时器就会重置。一个在未达 SLO 和达到 SLO 之间波动的 SLI 可能永远不会触发告警。 |
由于上述缺点,不建议将持续时间作为基于 SLO 的告警条件的一部分。
2. 基于燃烧率的告警
为了改进之前的解决方案,我们可以引入燃烧率的概念,在保持告警预算支出不变的情况下,减小窗口大小,从而创建具有良好检测时间和高精度的告警。
燃烧率是指服务相对于 SLO 消耗错误预算的速度。以下是不同燃烧率对应的错误率和耗尽 SLO 预算所需的时间:
| 燃烧率 | 99.9% SLO 对应
超级会员免费看
订阅专栏 解锁全文
883

被折叠的 条评论
为什么被折叠?



