0%

什么是 SLI

应将工程时间用于最重要服务的最重要功能

服务质量指标(SLI)

SLI: Service Level Indicator

基本概念

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

特点

  • 随着时间变化的度量值

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

示例

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

可测量指标分类

  • 性能
    • 响应时间(latency)
    • 吞吐量(throughput)
    • 请求量(qps)
    • 实效性(freshness)
  • 可用性
    • 运行时间(uptime)
    • 故障时间/频率
    • 高可用
  • 质量
    • 准确性(accuracy)
    • 正确性(correctness)
    • 完整性(completeness)
    • 覆盖率(coverage)
    • 相关性(relevance)
  • 内部指标
    • 队列长度(queue length)
    • 内存占用(RAM usage)
  • 因素
    • 响应时间(time to response)
    • 修复时间(time to fix)
    • 修复率(fraction fixed)

常见问题

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

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

举例说明: hotmail的downtime SLI

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

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

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

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

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

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

测量指标的可靠度

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