简单系统质量 —— SLI(一)

简单系统质量 —— SLI(一)

一、服务质量指标(SLI)

SLI: Service Level Indicator

1.1 基本概念

定义

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

特点

  • 随着时间变化的度量值

意义

  • 通过 SLI 测量出服务的质量指标,该值用于描述 SLO

示例

  • 请求计数:5分钟内慢查询数量、每分钟慢请求数量。
  • 响应延迟时间:慢查询的执行时间、慢请求的响应延迟

SLI

1.2 可测量指标分类

性能

  • 响应时间(latency)
  • 吞吐量(throughput)
  • 请求量(qps)
  • 实效性(freshness)

可用性

  • 运行时间(uptime)
  • 故障时间/频率
  • 高可用

质量

  • 准确性(accuracy)
  • 正确性(correctness)
  • 完整性(completeness)
  • 覆盖率(coverage)
  • 相关性(relevance)

内部指标

  • 队列长度(queue length)
  • 内存占用(RAM usage)

因素

  • 响应时间(time to response)
  • 修复时间(time to fix)
  • 修复率(fraction fixed)

常见问题

  • 要测量的指标是什么?
  • 测量时的系统状态?
  • 如何汇总处理测量的指标?
  • 测量指标能否准确描述服务质量?
  • 测量指标的可靠度(trustworthy)?

    不同类型组建的潜在SLI:可用性、延迟、质量、时效性、正确率、覆盖率、持久性

举例说明: Outlook的downtime SLI

  • 错误率(error rate)计算的是服务返回给用户的error总数
  • 如果错误率大于X%,就算是服务down了,开始计算downtime
  • 如果错误率持续超过Y分钟,这个downtime就会被计算在内
  • 间断性的小于Y分钟的downtime是不被计算在内的。

1.3测量时的系统状态,在什么情况下测量会严重影响测量的结果

  • 测量异常(badly-formed)请求,还是失败(fail)请求还是超时请求(timeout)
  • 测量时的系统负载(是否最大负载)
  • 测量的发起位置,服务器端还是客户端
  • 测量的时间窗口(仅工作日、还是一周7天、是否包括计划内的维护时间段)

常见的处理测量的指标?

  • 计算的时间区间是什么:是一个滚动时间窗口,还是简单的按照月份计算
  • 使用平均值还是百分位值,比如:某服务 X 的 ticket 处理响应时间 SLI 的
  • 测量指标:统计所有成功解决请求,从用户创建 ticket到问题被解决的时间
  • 怎么测量:用 ticket 自带的时间戳,统计所有用户创建的 ticket
  • 什么情况下的测量:只包括工作时间,不包含法定假日
  • 用于SLI的数据指标:以一周为滑动窗口,95%分位的解决时间

1.4 测量指标能否准确描述服务质量?

  • 性能:时效性、是否有偏差
  • 准确性:精度、覆盖率、数据稳定性
  • 完整性:数据丢失、无效数据、异常(outlier)数据

1.4 测量指标的可靠度

  • 是否服务提供者和客户都认可
  • 是否可被独立验证,比如三方机构
  • 客户端还是服务器端测量,取样间隔
  • 错误请求是如何计算的

简单系统质量 —— SLI(一)

https://minram.github.io/sre/systemmonitor-01-sli/

作者

MinRam

发布于

2022-07-16

更新于

2022-07-16

Licensed under

评论