深色模式
LLM 应用告警与 SLO 设计
摘要:把通用 SRE 方法落到 LLM 应用上,难点在于 SLI 的选取——除了可用性与延迟,还必须纳入质量与成本两类 LLM 特有信号。本文给出四类 SLI 的定义与目标值参考、多窗口燃烧率告警规则、LLM 场景的防噪音设计与值班响应清单。前置阅读:LLMOps 可观测性总览、质量与幻觉监控、Token 成本与用量监控。SLO 通用方法论见 SLO 实践。
四类 SLI
| 类别 | SLI 示例 | SLO 目标参考 |
|---|---|---|
| 可用性 | 非 5xx 请求占比;模型侧 overloaded 错误占比 | 99.5% / 月 |
| 延迟 | TTFT P99 < 2s;端到端 P95 < 30s(长生成场景) | 按场景分层定义 |
| 质量 | 格式合规率 > 99%;抽样忠实度 > 0.9;拒答率 < 2% | 质量类按周滚动评估 |
| 成本 | 日成本 ≤ 预算;异常 token 速率为 0 事件 | 事件型 SLO |
为什么质量必须进 SLO
可用性 100% 但幻觉率飙升的服务,对用户而言与宕机无异。质量类 SLI 用抽样评估 + 周滚动窗口纳入 SLO 体系,不必做到分钟级实时。
告警规则:多窗口燃烧率
沿用 Google SRE Workbook 的多窗口燃烧率模式,LLM 场景的典型规则:
yaml
# 示例:错误预算燃烧率告警(Prometheus / Alertmanager 语义)
groups:
- name: llm-slo
rules:
# 快烧:5m + 1h 双窗口,燃烧率 14 倍 → page
- alert: LLMErrorBudgetBurnFast
expr: |
(
sum(rate(llm_requests_total{code=~"5.."}[5m]))
/ sum(rate(llm_requests_total[5m]))
) / (1 - 0.995) > 14
and
(
sum(rate(llm_requests_total{code=~"5.."}[1h]))
/ sum(rate(llm_requests_total[1h]))
) / (1 - 0.995) > 14
# 慢烧:30m + 6h 双窗口,燃烧率 6 倍 → ticket
- alert: LLMErrorBudgetBurnSlow
expr: |
(
sum(rate(llm_requests_total{code=~"5.."}[30m]))
/ sum(rate(llm_requests_total[30m]))
) / (1 - 0.995) > 6
and
(
sum(rate(llm_requests_total{code=~"5.."}[6h]))
/ sum(rate(llm_requests_total[6h]))
) / (1 - 0.995) > 61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
LLM 特有的追加规则(阈值均为经验起点,需按业务校准):
| 告警 | 条件 | 级别 |
|---|---|---|
| 格式合规率骤降 | 5 分钟窗口 < 95% | page |
| TTFT P99 恶化 | > 2× 基线持续 10 分钟 | page |
| 成本异常 | 日成本 > 基线 2 倍 / token 速率 > 3× 基线 5 分钟 | page |
| 质量回归 | 抽样忠实度低于 SLO(周窗口) | ticket |
| 预算水位 | 租户月预算消耗 90% | ticket |
防噪音:LLM 场景的三个陷阱
- 不要对单请求失败告警:LLM API 天然有零星超时与限流,按燃烧率而非瞬时错误率触发。
- 区分厂商故障与自身故障:给商业 API 调用与自托管推理打不同的
backend标签,厂商侧异常走"降级路由"而非人肉响应(见 多模型路由与降级)。 - 质量告警去抖:抽样评估的样本量小(每小时可能仅几十条),用滑动窗口 + 最小样本数门槛避免单条低分样本触发告警。
值班响应清单
LLM 应用 page 触发后的标准动作:
- 看仪表盘四象限:错误率 / TTFT P99 / 成本速率 / 格式合规率,先定位是哪类信号;
- 错误类 → 判断
backend标签:厂商 5xx/429 → 检查降级路由是否生效;自托管 → 看num_requests_waiting与 GPU 指标; - 质量类 → 拉最近低分 trace 归因(检索失败 / prompt 变更 / 模型版本变更);
- 成本类 → 冻结异常租户的硬预算,下钻 trace 找失控循环;
- 恢复后按 故障排查与复盘 流程写复盘,把新失败模式补进监控。
错误预算的通用实践(消耗完毕冻结发布等)与通用 SLO 一致,见 SLO 实践 与 错误预算。