快速识别 SLI 指标的方法:VALET

news2024/9/20 17:47:58

SLI,Service Level Indicator,服务等级指标,其实就是我们选择哪些指标来衡量我们的稳定性。而 SLO,Service Level Objective,服务等级目标,指的就是我们设定的稳定性目标,比如“几个 9”这样的目标。

VALET 是 5 个单词的首字母,分别是 Volume、Availability、Latency、Error Ticket。这 5 个单词就是我们选择 SLI 指标的 5 个维度。我们还是结合 trade_cart 这个例子,一起看一下每个维度具体是什么。

1、Volume- 容量

Volume(容量)是指服务承诺的最大容量是多少。比如,一个应用集群的 QPS、TPS、会话数以及连接数等等,如果我们对日常设定一个目标,就是日常的容量 SLO,对双 11 这样的大促设定一个目标,就是大促 SLO。对于数据平台,我们要看它的吞吐能力,比如每小时能处理的记录数或任务数。

2、Availablity- 可用性

Availablity(可用性)代表服务是否正常。比如,我们前面介绍到的请求调用的非 5xx 状态码成功率,就可以归于可用性。对于数据平台,我们就看任务的执行成功情况,这个也可以根据不同的任务执行状态码来归类。

3、Latency- 时延

Latency(时延)是说响应是否足够快。这是一个会直接影响用户访问体验的指标。对于任务类的作业,我们会看每个任务是否在规定时间内完成了。

因为通常对于时延这个指标,我们不会直接做所有请求时延的平均,因为整个时延的分布也符合正态分布,所以通常会以类似“90% 请求的时延 <= 80ms,或者 95% 请求的时延 <=120ms ”这样的方式来设定时延 SLO,熟悉数理统计的同学应该知道,这个 90% 或 95% 我们称之为置信区间。

因为不排除很多请求从业务逻辑层面是不成功的,这时业务逻辑的处理时长就会非常短(可能 10ms),或者出现 404 这样的状态码(可能就 1ms)。从可用性来讲,这些请求也算成功,但是这样的请求会拉低整个均值。

同时,也会出现另一种极端情况,就是某几次请求因为各种原因,导致时延高了,到了 500ms,但是因为次数所占比例较低,数据被平均掉了,单纯从平均值来看是没有异常的。但是从实际情况看,有少部分用户的体验其实已经非常糟糕了。所以,为了识别出这种情况,我们就要设定不同的置信区间来找出这样的用户占比,有针对性地解决。

4、Errors- 错误率

错误率有多少?这里除了 5xx 之外,我们还可以把 4xx 列进来,因为前面我们的服务可用性不错,但是从业务和体验角度,4xx 太多,用户也是不能接受的。或者可以增加一些自定义的状态码,看哪些状态是对业务有损的,比如某些热门商品总是缺货,用户登录验证码总是输入错误,这些虽不是系统错误,但从业务角度来看,对用户的体验影响还是比较大的。

5、Tickets- 人工介入

是否需要人工介入?如果一项工作或任务需要人工介入,那说明一定是低效或有问题的。举一个常见的场景,数据任务跑失败了,但是无法自动恢复,这时就要人工介入恢复;或者超时了,也需要人工介入,来中断任务、重启拉起来跑等等。

Tickets 的 SLO 可以想象成它的中文含义:门票。一个周期内,门票数量是固定的,比如每月 20 张,每次人工介入,就消耗一张,如果消耗完了,还需要人工介入,那就是不达标了。

 Google 提供的,针对类似于 trade_cart 的一个应用服务,基于 VALET 设计出来的 SLO 的 Dashboard 样例,结合上面介绍的部分,就一目了然了。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android音视频开发-OpenGL ES正交投影实现方法

本文实例为大家分享了OpenGL ES正交投影展示的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 绘制正方形 在最开始绘制的六边形里面好像看起来挺容易的&#xff0c;也没有出现什么问题&#xff0c;接下来不妨忘记前面绘制六边形的代码&#xff0c;让我们按照自己的…

设计模式——组件协作模式之模板方法模式

文章目录 前言一、“组件协作” 模式二、模板方法模式1、动机2、源码分析讲解①、结构化软件设计②、面向对象软件设计 三、模板方法模式定义四、结构要点总结 前言 一、“组件协作” 模式 现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”&#xff0c;“组件协作…

部署LVS-NAT群集实验

一、 实验准备 负载调度器&#xff1a;内网关 ens33&#xff1a;192.168.109.12&#xff0c;外网关 ens37&#xff1a;12.0.0.1外网 Web节点服务器1&#xff1a;192.168.109.13 Web节点服务器2&#xff1a;192.168.109.14 NFS服务器&#xff1a;192.168.109.11 客户端&#xf…

C#基础学习--其他主题

目录 概述 字符串 使用StringBuilder类 把字符串解析为数据值 关于可空类型的更多内容 为可空类型赋值 使用空接合运算符 Main方法 文档注释 嵌套类型 析构函数和dispose模式 概述 再本章中会讲解一些重要的杂项知识 字符串 字符串是Unicode字符串数组 字符串是不可…

ISO-27145故障诊断说明

ISO-27145故障诊断说明 2.1 27145目录说明 ISO27145-1: 这里边介绍的是一般信息和用例定义&#xff1b; ISO27145-2: 这里边介绍的是与排放相关的通用数据规则&#xff0c;用于查询&#xff1b; ISO27145-3: 这里边主要介绍了支持的服务 12服务 14服务 19服务 22服务 31服务&…

【移动端网页布局】移动端网页布局基础概念 ⑧ ( 移动端页面布局方案 | 单独制作的移动端页面 - 主流 | 响应式页面兼容移动端 - 开发难度较大 )

文章目录 一、移动端页面布局方案1、单独制作的移动端页面2、响应式页面兼容移动端 一、移动端页面布局方案 移动端页面方案 : 单独制作的移动端页面 : 主流开发方案 , PC 端 与 移动端 访问的是不同的页面 , 目前的 京东 / 淘宝 等电商网站移动端页面采取的该方案 ;响应式页面…

高效编程----VSCode+ChatGPT插件

VSCode中使用ChatGPT插件 首先在VSCode中打开扩展面板&#xff0c;搜索ChatGPT&#xff0c;安装蓝色圈出插件&#xff0c;如图所示&#xff1a; 安装完成后&#xff0c;需要重启VSCode 注册账号&#xff0c;如图所示&#xff1a; 然后在ChatGPT对话框中输入信息即可使用&#…

[oeasy]python0137_相加运算_python之禅_import_this_显式转化

变量类型 相加运算 回忆上次内容 上次讲了是从键盘输入变量input 函数 可以有提示字符串需要有具体的变量接收输入的字符串 输入单个变量没有问题 但是输入两个变量之后一相加就非常离谱 怎么办呢&#xff1f;&#x1f914; 基本实验 回到 游乐场 做个 实验 两个整数 相加…

C++STL——map与set的模拟实现

map与set的模拟实现 map与set的部分源码参考改造红黑树红黑树的迭代器补全set与map的实现完整代码 map与set的部分源码参考 map和set的底层都是由红黑树实现的。 所以这里将上次实现的红黑树插入拿来用。 首先想一想&#xff0c;搜索二叉树不能修改值&#xff0c;因为会破坏整…

第十章 装饰者模式

文章目录 前言一、装饰者模式定义装饰者模式 UML图 二、装饰者模式解决星巴克咖啡订单完整代码Drink 抽象 饮料类Coffee 咖啡类继承 Drink 做一个缓冲层Espresso 意大利咖啡 继承 CoffeeLongBlack 咖啡ShortBlack 咖啡装饰者&#xff0c;调料牛奶巧克力豆浆咖啡店测试程序添加 …

01-yolo算法

要点&#xff1a; 归纳 YOLOv5 github 1 YOLO v1 1) 将一幅图像分成SxS个网格(grid cell)&#xff0c;如果某个object的中心 落在这个网格中&#xff0c;则这个网格就负责预测这个object。 2)每个网格要预测B个bounding box&#xff0c;每个bounding box 除了要预测位置之…

TortoiseSVN使用-合并分支代码

文章目录 3.4.12 合并分支代码TortoiseSVN有2种合并方式演示场景1&#xff1a;&#xff08;合并一个版本范围 Merge a range of revisions&#xff09;演示场景2&#xff1a;&#xff08;合并两个不同的树 Merge two different trees&#xff09;&#xff0c;不设置主分支版本演…

初窥Edubuntu 23.04:装有教育软件的Ubuntu桌面

导读4月20日&#xff0c;Edubuntu将作为Ubuntu官方口味卷土重来&#xff0c;作为即将发布的Ubuntu 23.04&#xff08;Lunar Lobster&#xff09;的一部分&#xff0c;所以我认为让你们先看看这个重制版中包含的内容是个好主意。 Edubuntu以前被称为Ubuntu教育版&#xff0c;最…

Anaconda安装及tensorflow安装

1.下载Anaconda安装包&#xff0c;并安装好 官网下载网址&#xff1a;https://www.anaconda.com/download/ 清华映像站&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 注意&#xff1a;注意安装anaconda时一定要把环境变量加入windows环境中。若没有…

C语言---函数介绍详解

生活的全部意义在于无穷地探索尚未知道的东西,在于不断地增加更多的知识——左拉 文章目录 前言函数模块化程序设计方法函数的定义函数的分类函数定义角度库函数自定义函数 函数形式角度无参函数有参函数 函数兼有其他语言中的函数和过程两种功能的角度有返回值函数无返回值函…

ENVI 国产高分2号(GF-2)卫星数据辐射定标 大气校正 影像融合

1.数据 高分2号卫星数据&#xff0c;包含&#xff1a; MSS-1\2多光谱数据&#xff0c;4m分辨率&#xff1b; Pan-1\2全色波段数据&#xff0c;0.8m分辨率。 2.处理软件 ENVI5.3 国产插件下载地址&#xff1a;ENVI App Store (geoscene.cn) 首先下载插件文件&#xff1b; …

Spring的事务传播行为

事务传播行为 多个声明的事务的方法在相互调用的时候&#xff0c;这个是事务应该如何去传递。 比如说methodA()调用methodB(), 那么这两个方法都显示了开启了事务&#xff0c;那么methodB()是开启一个新的事务还是继续在methodA()这个事务里面去执行就取决于所谓的事务传播的…

多兴趣推荐召回模型:ComiRec

前言 多兴趣向量召回系列&#xff1a; 通过Youtube DNN推荐模型来理解推荐流程 多兴趣召回模型&#xff1a;MIND 推荐系统可以表达为序列推荐问题的形式&#xff0c;序列推荐任务是通过用户的历史行为来预测用户下一个感兴趣的item&#xff0c;这也与真实场景的推荐场景是符…

Linux 通过Chrony实现NTP

Linux实现NTP服务器时间同步&#xff0c;可以通过ntp服务实现&#xff0c;也可以通过chrony服务实现 两者区别主要有 Chrony运行于UDP的323端口&#xff0c;NTP运行于UDP的123端口 Chrony相比于NTP可以更快同步&#xff0c;能够最大同步的减少时间和频率的误差 Chrony能够更好…

linux安装harbor ,搭建镜像私服

linux安装harbor &#xff0c;搭建镜像私服 前提 环境中要有 docker 和 docker-compose 2、下载 harbor 的 .tgz 安装包 官网地址&#xff1a; Releases goharbor/harbor GitHub 第一个是离线安装包&#xff0c;第二个是在线安装包&#xff1b;带asc后缀的文件就是校验…