深色模式
燃尽图仪表盘
摘要:数字是抽象的,曲线是直观的。燃尽图(Burn-down)把“本月还剩多少预算”画成一条向下走的线,团队一眼就知道离“停发布”还有多远。
适用环境
- 已定义 SLO 并能算错误率(见前文)
- 已部署 Grafana + Prometheus 数据源
操作步骤
1. 算剩余预算比例
promql
# 30 天窗口剩余预算(%)
(
1 - (1 - 0.999)
) - (
1 - (
sum(rate(http_requests_total{code!~"5.."}[30d]))
/ sum(rate(http_requests_total[30d]))
)
)1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2. 算多窗口燃烧速率
promql
# 1h 窗口燃尽率
(1 - sum(rate(http_requests_total{code!~"5.."}[1h]))/sum(rate(http_requests_total[1h])))
/ (1 - 0.999)1
2
3
2
3
3. 在 Grafana 建面板
- 新建 Dashboard → Add panel
- 查询填上面的“剩余预算”表达式,单位
% - 加一条阈值线在
0,低于 0 即超预算变红 - 再建一个面板画
burnrate(...)多窗口曲线
4. 导出 JSON 模板复用
bash
# Grafana 里 Save dashboard → Export → 保存为 slo-burnrate.json
# 新建服务时复制改 SLO 数值即可1
2
2
DANGER
面板里 SLO 数值(如 0.999)是硬编码的,复制模板后必须改对应服务的 SLO,否则曲线失真。
验证
bash
# 在 Grafana 刷新,确认曲线有数据且不报错
# 手动注入错误请求,观察剩余预算曲线下降1
2
2
常见坑
WARNING
- 30d 滚动窗口在刚开始(数据不足 30 天)时会失真,上线初期用 7d 过渡。
- 只画“已用%”不画“燃烧速率”,会看不到加速恶化的趋势。