如何衡量 SLO 的有效性?

news/2025/2/21 14:14:56/

衡量 SLO 及错误预算策略是否有效,其实就是看实际运行后,是否真的能达到我们的期望。我们可以从下面三个关键维度来看。

  • SLO 达成情况。我们用达成(Met),或未达成(Missed)来表示。
  • “人肉”投入程度。英文表示为 Toil,这里用形象一点的“人肉”投入作为它的译意,泛指需要大量人工投入、重复、繁琐且没有太多价值的事情。我们用投入程度高(High)和低(Low)来表示。
  • 用户满意度。英文就是 Customer Satisfaction,可以理解为用户感受和体验如何。这个信息可以通过真实和虚拟渠道获得。真实渠道如客服投诉、客户访谈和舆情监控获取;虚拟渠道如真机模拟拨测。我们用满意度高(High)和低(Low)来表示。

总共 3 个维度,每个维度有 2 种情况,组合起来就是 8 种情况,我们直接引用 Google 给出的图表和建议。

针对这 8 种情况,我们分别给出对应策略。总结一下,应对方式可以分为 3 类。

第一类,收紧 SLO。

这个时候就是目标定得太低了,比如 SLO 达成(Met),但是用户不满意(Low)。会有什么后果呢?要么投诉多,要么到处吐槽。这就表示我们的 SLO 设定得太容易达成,没有反馈真实的运行状况。

第二类,放宽 SLO。

与第一类相反,目标定太高,总是达不成(Missed),但用户反馈却很不错(High),这种就会造成错误预算提前消耗完,导致很多变更暂停,产品延期,甚至会做一些无谓的优化,这时就可以适当松松绑。

第三类,保持现状,对有问题的维度采取有针对性的优化措施。

比如表格第一行,是我们期望的最理想状态,SLO 能达成,人肉投入又低,客户满意度又很高,也没有特别的优化空间,这时我们就可以增加发布和变更次数,更大程度地释放生产力。

可以参考这个样例,从 SLO 达成情况、“人肉”投入情况以及用户实际满意度三个维度来衡量自己业务和系统的 SLO 有效性,该收紧 SLO 就要提高稳定性要求,但是也不能设定太过超出能力范围的目标,始终达不成,SLO 也就没有意义了。当然,在 SLO 可以达成的情况下,我们还是希望提升我们的用户价值交付效率,围绕着这个终极目标,不断优化自己的 SLO 和错误预算策略。

此文章为4月Day24 学习笔记,内容来源于极客时间《SRE 实战手册》,推荐该课程。


http://www.ppmy.cn/news/50138.html

相关文章

Docker私有仓库Harbor搭建及使用

文章目录 一、Harbor简介二、Harbor仓库部署三、Harbor仓库使用 一、Harbor简介 官网地址:https://github.com/goharbor/harbor Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等…

深入剖析 grep 命令

目录 介绍 正则表达式 基本用法 1. 在单个文件中查找一个单词 2. 在多个文件中查找一个单词 3. 查找包含某个字符串的文件 4. 使用正则表达式搜索 5. 统计匹配行数 高级用法 1. 在结果中显示匹配文本 2. 排除特定的文件或目录 3. 将匹配的行写入到文件中 4. 搜索特…

【面试】你在项目中遇到过慢查询问题吗?你是怎么做SQL优化的?

文章目录 前言一、找出有问题的SQL1、系统层面2、SQL语句层面 二、查看SQL执行计划三、SQL优化案例慢查询优化步骤 SQL优化小结 前言 我在面试的时候很喜欢问候选人这样一个问题:“你在项目中遇到过慢查询问题吗?你是怎么做SQL优化的?” 很多…

gpt.4.0-gpt 国内版

gpt 使用 GPT(Generative Pre-trained Transformer)是一种预训练的语言模型,可用于多种自然语言处理任务,如情感分析、文本分类、文本生成等。下面是使用GPT的一些步骤和建议: 确定任务和数据集:首先&…

Java核心技术 卷1-总结-17

Java核心技术 卷1-总结-17 同步条件对象synchronized关键字 同步 条件对象 通常,线程进入临界区,却发现在某一条件满足之后它才能执行。要使用一个条件对象来管理那些已经获得了一个锁但是却不能做有用工作的线程。这时需要用到Java库中条件对象的实现…

U8库存展望明细存储过程

---库存展望明细计算 CREATE PROCEDURE [dbo].[P_Quick_StockExpectationDetal] zTime DATETIME, cInvCode NVARCHAR(500) AS DECLARE count INT; SET count 1; --SET cInvCode NFB01010092; --SET zTime 2024-04-21; CREATE TABLE TempKCView_SZNK2105157_0_Temp…

杂谈:项目结束时间,开发时间,测试时间

1 项目会莫名奇妙的死去 做着做着项目就会出现变形,运营还没开始,项目宣告结束。最近在做项目的时候越来越感觉到状况出现这样情况。你要复盘原因,很复杂。市场经营瞬息万变 ,一瞬间就活起来,一瞬间就死了。有谁想到硅…

【SpringBoot】一:SpringBoot的基础(上)

文章目录 1. 脚手架创建项目1.1使用Spring Initializr1.2 IDEA中使用脚手架创建项目 2. 代码结构2.1 单一结构2.2 多模块2.3 包和主类2.4 pom文件2.4.1 父项目2.4.2 启动器2.4.3 不使用父项目 3. 运行SpringBoot项目 1. 脚手架创建项目 脚手架辅助创建程序的工具,S…