SRE 实战手册(三)|SRE 切入点:选 SLI、定 SLO

发布时间:2026/9/14 17:00:35

SRE 实战手册(三)|SRE 切入点:选 SLI、定 SLO SRE 实战手册三SRE 切入点选 SLI、定 SLO对应课程「03SRE 切入点选择 SLI设定 SLO」。这是整套方法论里最该先做对的一步。一、SLI / SLO / SLA三个缩写先分清课程一上来就把这三个极易混淆的概念掰开SLIService Level Indicator指标对系统某方面表现的量化测量。比如过去 5 分钟结账接口的成功率。它是事实。SLOService Level Objective目标你给 SLI 定的目标值。比如结账成功率 ≥ 99.9%。它是承诺对自己/对协作方。SLAService Level Agreement协议带违约后果的对外承诺通常写进合同违了要赔钱。它是法律/商务层面的。一句话SLI 是尺子SLO 是红线SLA 是带罚则的红线。SRE 日常主要和 SLI、SLO 打交道SLA 更多是商务动作但它的数值通常要严于SLO给自己留余量。二、怎么选 SLIRED 与 USE 两张王牌SLI 不是越多越好选错指标比没指标更糟。业界有两套成熟方法课程里也重点提及RED面向请求型服务如 Web/APIRate吞吐量QPSErrors错误率Duration时延分布看 p99别只看平均USE面向资源型组件如 CPU/磁盘/缓存Utilization利用率Saturation饱和度队列长度、等待数Errors错误数我们的悦购电商 Demo 是典型的请求型服务所以直接用 RED。看deploy/demo_app.py里/metrics暴露的指标# HELP sre_http_requests_total 各接口请求总数按状态码 sre_http_requests_total{nodeecs-584a-0002,endpointcheckout,status200} 18203 sre_http_requests_total{nodeecs-584a-0002,endpointcheckout,status500} 9 # HELP sre_http_request_duration_seconds 请求耗时直方图 sre_http_request_duration_seconds_bucket{node...,endpointcheckout,le0.2} 17980 sre_http_request_duration_seconds_bucket{node...,endpointcheckout,leInf} 18212这就是一组现成的 SLI 原料。三、怎么定 SLO四个实操原则课程给了很落地的建议结合实验我总结成四条1. SLO 要落在用户真的在乎的指标上不要拿 CPU 利用率定 SLO用户不在乎你 CPU 多少要拿结账成不成功加购快不快定。我们选checkout接口的成功率作为核心 SLO 对象——因为它直接对应收入和用户体验。2. SLO 目标值要够用且可信不是越高越好张口就来我们要 100% 可用是新手最容易犯的错。100% 意味着零容错工程上不可能团队也会被自己定的假目标压垮。我们定为99.9%30 天窗口。为什么不是 99.99%因为 99.99% 对应每月只允许 ~52 分钟错误预算对悦购这种非核心金融的系统来说过于严苛会严重拖慢迭代。SLO 是成本和风险的折中不是 KPI 越高越好看。3. SLO 要配套如何测量的口径SLO 不写口径 没有 SLO。我们的口径SLI 1 - (checkout 返回 5xx 的请求数 / checkout 总请求数) 窗口 滚动 30 天 测量源 Prometheus: sum(rate(checkout 5xx)) / sum(rate(checkout 全部))4. SLO 是共识不是 SRE 单方面宣布这点极其关键也是下一讲错误预算的伏笔SLO 必须研发、产品、SRE 三方认可。否则 SRE 拿着你超 SLO 了去卡发版研发会觉得你在耍官威。四、把 SLO 写进可执行的配置光写文档不够要落到告警规则里。看deploy/slo_rules.yml的一段这是生产级 Prometheus 版配置本实验因机子公网仅 5Mbit、Prometheus 二进制直连 GitHub 下载近乎停滞改为用等价的零依赖sre_monitor.py跑通同一套语义见deploy/README.mdgroups:-name:slo-checkoutrules:-record:job:checkout_errors:rate1hexpr:|sum(rate(sre_http_requests_total{endpointcheckout,status500}[1h])) / sum(rate(sre_http_requests_total{endpointcheckout}[1h]))这条记录规则持续算过去 1 小时结账错误率它就是我们的 SLI 在 Prometheus 里的化身。后面接燃烧速率告警第 04、06 讲展开。五、常见坑坑 1SLI 选了用户不在乎的指标→ 团队为CPU 达标狂欢用户为下单失败骂街。坑 2SLO 定到 100%→ 要么造假要么团队崩溃。坑 3只有 SLO 数字没有测量口径→ 出事互相甩锅你说的成功率算法和我理解的不一样。坑 4SLO 由 SRE 拍脑袋→ 没有共识后面错误预算机制根本推不动。六、小结与思考题SLI 是尺子、SLO 是红线、SLA 是带罚则的红线。请求型服务用 RED资源型组件用 USE。SLO 要落在用户在乎的指标上、目标值够用即可、必须写清测量口径、必须是多方共识。思考题把你负责的系统里最该被 SLO 守护的那一个用户动作写出来再写下它的 SLI 公式和窗口——你会发现光是怎么算成功这一件事团队内部可能就有三种理解。下一篇我们讲让 SLO 真正活起来的机制错误预算。
延伸阅读

更多相关文章

2026/9/14 5:42:24

CodeBuddy中配置Redis MCP 连接与排错实战

CodeBuddy中配置Redis MCP 连接与排错实战 从零配置 Redis MCP Server&#xff0c;到踩遍所有坑最终打通&#xff0c;列出数据库全部 key 的完整实录。适用于 Redis < 6.0 的本地环境。 一、背景与目标 在 CodeBuddy&#xff08;或其它支持 MCP 协议的客户端&#xff09;中…

2026/9/14 5:56:47

CodeBuddy 中使用 MCP 连接 MySQL 数据库 — 完整指南

CodeBuddy 中使用 MCP 连接 MySQL 数据库 — 完整指南 一、什么是 MySQL MCP MCP&#xff08;Model Context Protocol&#xff09; 是一种开放协议&#xff0c;让 AI 助手&#xff08;如 CodeBuddy&#xff09;通过标准化接口连接外部数据源。 MySQL MCP Server 是一个独立的服…

2026/9/15 5:21:34

AI代码规范:让大模型产出可落地、可维护的生产级代码

1. 为什么要在项目里给AI“立规矩”&#xff1a;不是限制创造力&#xff0c;而是让产出可落地、可维护、可追责最近团队在推进一个智能代码补全功能时&#xff0c;连续两周卡在同一个环节&#xff1a;AI生成的函数逻辑完全正确&#xff0c;但命名全是func123()、data_process_v…

2026/9/15 5:21:34

微信健康小程序源码落地指南:从解压到真机可用

简介&#xff1a;这是一套面向微信小程序初学者与进阶开发者的健康菜谱类实战源码&#xff0c;适用于快速搭建轻量级美食服务应用或学习小程序全栈开发流程。资源包含142个文件&#xff0c;涵盖16个JS逻辑文件&#xff08;如index.js、search.js、app.js等核心页面与全局脚本&a…

2026/9/15 5:21:34

递归自我改进实战:从原理到最小原型搭建指南

开门见山说一句&#xff1a;递归自我改进&#xff08;Recursive Self-Improvement&#xff0c;RSI&#xff09;这几年被频繁提起&#xff0c;但多数讨论都停留在“AI能不能自己写代码改进自己”这种口号层面。真正动手做过的工程师会知道&#xff0c;“让模型自己改自己的训练目…

2026/9/15 5:21:34

LSTM多变量时间序列预测入门:数据预处理到模型调参全指南

1. 为什么我建议新手从多变量时间序列预测入门LSTM先说下这张图景&#xff1a;你手里有一批带时间戳的数据&#xff0c;比如某条河流过去几年的日径流量、降雨量、气温、上游水库放水量&#xff0c;现在想预测未来几天的径流值&#xff1b;或者你有一份工厂设备记录&#xff0c…

2026/9/15 5:21:34

从 awesome-llm-apps 看大模型应用的五大落地形态与工程实践

我是在整理 GitHub Star 列表的时候翻到 awesome-llm-apps 这个仓库的。它表面上是一份链接清单&#xff0c;但顺着目录一层层点进去&#xff0c;会发现过去两年大模型应用开发领域几乎所有值得关注的方向都在这了。很多人拿到这种 awesome 仓库的第一反应是收藏&#xff0c;然…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述&#xff1a;一台黑屏的拯救者Y7000&#xff0c;到底卡在哪一步&#xff1f; 联想拯救者Y7000系列笔记本&#xff0c;从2018年第一代搭载i5-8300H开始&#xff0c;到后来的i7-9750H、i7-10750H、i5-11400H&#xff0c;再到2023年款的R7-7840HS&#xff0c;它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手&#xff0c;我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合&#xff0c;打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者&#xff0c;最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来&#xff1a;先搞清楚你要成为哪种机器人工程师说实话&#xff0c;六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页&#xff0c;ROS2的官方文档可以翻到你怀疑人生&#xff0c;再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码