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

发布时间:2026/11/4 23:55:38

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/10/25 1:25:36

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

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

2026/10/29 9:53:34

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

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

2026/11/5 16:51:33

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒&#xff0c;这些活儿但凡干过几次的人都知道&#xff0c;真正决定效率的往往不是你手速多快&#xff0c;而是手边那套PE环境靠不靠谱。EasyU&#xff08;圈内习惯叫优启通&#xff09;就是在这个场景下被…

2026/11/5 16:26:13

Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述&#xff1a;大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈&#xff0c;构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师&#xff0c;我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代&#xff0c;基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而&#xff0c;与配合度高的人类不同&#xff0c;宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态&#xff0c;更无法控制光照环境。实际应用中&#xff0c;我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时&#xff0c;Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门&#xff0c;我先说个结论&#xff1a;这事真不难&#xff0c;难的是资料太散、路线太多&#xff0c;今天这个框架明天那个工具&#xff0c;新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师&#xff0c;我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码&#xff0c;在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代&#xff0c;基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而&#xff0c;与配合度高的人类不同&#xff0c;宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态&#xff0c;更无法控制光照环境。实际应用中&#xff0c;我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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