2.2. 服务质量目标

2.2.1. 服务质量术语

SLI

服务质量指标,该服务的某项服务质量的一个具体量化指标。

SLO

服务质量目标,定义是sli<目标值或者在一个范围。

SLA

服务质量协议,描述达到或者木有达到SLO之后的后果。

2.2.2. 指标在实践中应用

2.2.2.1. 运维人员和最终用户各自关心什么

只有理解用户对系统的真实需求才能真正决定哪些指标是否有用。一般来说4-5个指标具有代表性的指标对系统健康程度的评估和关注就足够了。

服务分类

  • 用户可见的服务系统: 可用性,延迟,吞吐量。

  • 存储系统: 延迟,可用性,数据持久性。

  • 大数据系统: 吞吐量、延迟。

2.2.2.2. 指标的收集

比如prometheus或者日志采集分析系统。

2.2.2.3. 汇总

一般为了简化和数据更可用,需要汇总原始数据。

2.2.2.4. 指标标准化

  • 汇总间隔: 每1分钟汇总一次

  • 汇总范围: 集群的全部任务

  • 度量频次: 每10s一次

  • 包含哪些请求: 黑盒监控发来的http get 请求

  • 数据如何获取: 通过监控系统获取服务端信息

  • 数据访问延迟: 从收到请求到最后一个字节被发出

2.2.3. 目标在实践中应用

我们应该思考用户最关心的方面入手,而非从现在能度量什么入手。

2.2.3.1. 目标的定义

目标定义demo

90% 请求在1ms内完成
99% 请求在10ms内完成
99.9% 请求会在100ms内完成

2.2.3.2. 目标的选择

选择目标不是纯粹的技术指标,而是涉及产品和业务层面的决策的。

  • 不要仅仅以目前的状态为基础选择目标

  • 保持简单

  • 避免绝对值

  • SLO越少越好

  • 不要过度追求完美

2.2.3.3. 控制手段

  • 可以监控并且度量系统的sli

  • 比较sli和slo,以决定是否需要执行操作

  • 如果需要执行操作,决定什么操作需要被执行,可以满足目标

  • 执行操作

比如一个例子

1. 请求延迟上涨
2. 如果无操作,1h会超出slo范围
3. cpu是否足够,增加cpu来分散负载
4. 执行cpu增加操作

2.2.3.4. slo可以建立用户预期

通过公布slo可以设置用户对系统行为的预期。

2.2.4. 协议在实践中应用

起草一份sla需要业务部门和法务部门选择合适的后果条款。SRE在这个过程中是帮助这些部门理解SLA的SLO达标的概率和困难程度。