You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SLI高于SLO时错误预算仍为负的原因咨询

问题原因分析

错误预算的正负逻辑完全取决于SLI的定义方向和SLO目标的匹配关系,你的情况大概率是以下两种核心原因之一:

1. SLO目标的判定方向搞反了

多数监控系统中,SLO的默认判定逻辑是「SLI达到或超过目标值即合规」(比如“99.9%的请求成功”)。但如果你的实际需求是限制instance-1的CPU时间占比不超过50%(避免该实例占用过多集群资源),却误将SLO目标设置为“≥50%”的正向判定,就会出现完全相反的结果:

  • 当instance-1的CPU占比>50%时,系统会判定你违反了SLO规则,错误预算(剩余允许的违规量)自然呈现负值——因为实际值已经超出了你本想设定的上限。

如果你的真实需求是「instance-1的CPU时间占比≤50%」,需要在SLO设置中明确选择目标的判定方向(比如切换为“≤50%”而非默认的“≥50%”)。

2. SLI的「好/坏事件」定义与业务逻辑不符

基于请求的SLI默认逻辑是「好事件为符合预期的指标」,但你将「instance-1的CPU时间」定义为“好服务”,总服务为所有VM的CPU时间。如果你的业务实际希望的是非instance-1的VM承担更多负载(即“好服务”应为其他实例的CPU时间),那当前的SLI定义就完全搞反了:

  • 当instance-1的占比>50%时,相当于“坏事件”(instance-1的时间)超过了允许的50%阈值,错误预算就会变为负值。

快速验证方法

你可以手动计算错误预算的逻辑来确认:

  • 允许的错误事件数 = 总服务时间 × (1 - SLO目标) = 总时间 × 50%
  • 实际的错误事件数 = 总服务时间 - 好服务时间 = 总时间 - instance-1的CPU时间

如果计算后发现实际错误数 > 允许错误数,错误预算(允许错误数 - 实际错误数)就会为负。结合你描述的「SLI>50%时错误预算负」的情况,代入后会发现只有当系统判定逻辑是「SLI≤50%才合规」时,才会出现这个结果——这也印证了第一种原因的概率最高。

内容的提问来源于stack exchange,提问作者Daniel Vanum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:23:11