帮助手册

理解 SLO 概念

为可靠的应用性能实施 SLO

如今,企业依赖高效的应用性能和稳健的网络基础设施来确保持续的服务交付。站点可靠性工程师(SRE)、开发人员、IT 管理员和业务负责人需要确保应用的可靠性,并提供高水平的客户满意度。为实现这一目标,他们必须定义、监控和迭代服务级别指标(SLI),这些指标是衡量应用性能的关键绩效指标(KPI)。

定义 KPI 后,企业通过设置服务级别目标(SLO)来监控这些指标,从而维持应用可靠性。服务级别协议(SLA)是 IT 服务提供商与用户之间的总体合同,其性能目标通常比 SLO 更容易实现。

使用场景:在高流量活动期间使用 SLO 监控确保 SLA 承诺

电商平台在闪购等高流量活动期间常常遭遇性能下降。为维持最佳服务水平,该公司同时使用应用性能监控(APM)和网络监控工具,追踪应用及网络基础设施的健康状况。

为确保持续兑现对客户的 SLA 承诺,该公司基于 APM 和网络监视器的关键绩效指标,定义并追踪内部 SLO。

APM 有助于检测诸如结账等关键用户操作期间响应时间过慢等问题,这可能导致用户沮丧和购物车放弃。与此同时,网络监控还能发现数据中心连接中的高延迟问题,这可能导致页面加载延迟和事务处理缓慢。

通过创建与这些监控工具绑定的 SLO,并主动追踪消耗速率和误差预算等 SLO 指标,该公司可以主动识别并解决性能瓶颈。这有助于在高峰期维持高应用可用性和性能,确保始终满足 SLA 中定义的客户期望。

理解 SLO 概念

以下是实施 SLO 的步骤:

  1. 定义 KPI

    第一步是定义 KPI,即反映系统实现可靠性目标的可量化值。通过确定这些 KPI,企业可以定义其 SLI,并在此基础上建立 SLO。

    例如,电商平台的 KPI 包括:
    • 应用响应时间:应用响应用户请求所需的时间。
    • 网络可用性:网络连接的正常运行时间百分比。
    KPI 是反映企业或系统实现目标效果的可量化值。在 SLO 监控中,KPI 有助于追踪服务性能、可靠性以及与既定目标的合规性。
  2. 配置 SLI

    SLI 是从 KPI 衍生出的定量指标,用于反映服务健康状况。

    例如,上述 KPI 对应的 SLI 可以是:
    • 应用响应时间:必须 ≤ 200 毫秒。

    • 网络可用性:必须达到 99.9%。

    这些 SLI 应在添加 SLO 页面中添加,并选择适当的评估方法。

    基于评估方法的 SLI 计算

    1. 基于时间的评估
      此方法在一段时间内衡量 SLI,通常在指定时间窗口内追踪服务正常运行时间或响应时间。
      SLI = (Total Good Time / Total Monitored Time) *  100
      在上述情况下,对于滚动 30 天周期,网络应保持 99.9% 的可用性。 

    2. 基于时间切片的评估
      此方法将时间划分为小间隔(例如一小时),并评估每个切片的服务性能。如果服务在某个切片内表现良好,则该整个切片计为一次成功事件。
      SLI = ∑ ((Good time in a slice/Total time in a slice) *100)
      这可能涉及每五秒评估一次应用的响应时间。
    3. 基于计数的评估
      此方法评估成功操作与总操作的比率(例如,事务、API 请求)。

      SLI = ( Successful Events / Total Events) * 100
      此方法可用于评估应用的可用性。

      SLI 是反映服务可用性和性能的定量指标,计算方式为成功服务事件与总服务事件的比率。

  3. 计算误差预算

    误差预算表示在违反 SLO 之前允许的最大宕机时间或故障实例数。

    在上述情况下,如果电商平台的 SLO 目标设为 98%,则我们的应用和网络中允许发生的误差为 2%。

    Error Budget = 100% − SLO Target
    如果应用保持在误差预算范围内,则 SLO 已满足,这表明在违反 SLO 之前服务可以容忍多少故障。

    计算误差预算时,请考虑以下时间框架:
    • 总时间窗口: 选择的完整时间段(例如,一周为 7 天,一个月为 30 天)
    • 已计算时间窗口: 从周期开始到当前日期和时间已经过去的总时间。
    注意

    如果是当前周或当前月,则总时间窗口已计算时间窗口将相同。

  4. 监控消耗速率

    消耗速率衡量误差预算的消耗速度。消耗速率大于 1 表示误差预算消耗过快,存在违反 SLO 的风险。

    例如,如果在时间窗口内有 4800 次应用故障,而允许的故障数(误差预算)为 5000,则: 
    Burn Rate = Actual Error Rate / Error Budget
    4800 / 5000 = 0.96
    消耗速率为 0.96 表示服务在安全范围内运行。

    解读:
    消耗速率 = 0:误差预算未被使用。
    消耗速率 < 1:误差预算以健康的速率消耗。
    消耗速率 = 1:误差预算正按计划使用。
    消耗速率 > 1:误差预算超出,需要立即采取行动。
  5. 计算误差时间

    企业必须确保其服务保持在误差时间范围内。如果应用或网络出现故障,只要误差时间未被超出,应用对用户仍然可用,且 SLO 不会被违反。

    误差时间是指服务在不违反 SLO 的情况下允许不可用的最大时长。
    Error Time = (Error Budget / 100) × Total Time Window
    例如,如果总时间窗口为 7 天(168 小时):
    Error Time = (5/100) x 168 = 8.4 hours
    这意味着应用可以在不违反 SLO 的情况下不可用最多 8.4 小时。

实施 SLO 有助于企业主动监控服务健康状况并维持应用可靠性。通过定义 KPI、配置 SLI、计算误差预算和追踪消耗速率,企业可以确保最佳性能。

这些实践使团队能够在问题影响最终用户之前检测并解决问题,从而最终提升客户体验和运营效率。

相关文章

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!