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达标的概率和困难程度。