新建 SLO¶
通过新建 SLO,您可以为服务选择测量方式、考核周期和目标,并在达标率下降时接收告警。创建前需拥有 SLO 配置管理权限;选择监控器类型时,先创建相应监控器;选择指标类型时,先将业务数量指标采集到当前工作空间。
进入监控 > SLO,点击新建 SLO。
配置 SLO¶
- 选择 SLI 类型:监控器类型关联 SLI 监控器;指标类型配置总数与成功数查询。
- 设置考核周期、检测频率,以及达标率中的目标和最低目标。
- 按需添加标签、关联告警策略,然后保存。
考核周期与检测频率¶
考核周期决定每轮评估覆盖的时间,支持最近 7 天或 30 天;检测频率决定 SLO 重新计算和检测的间隔,支持 5 分钟或 10 分钟。例如,选择 30 天、5 分钟,表示每 5 分钟评估此前 30 天的服务表现。来源监控器仍按各自的检测频率运行。
达标率:目标与最低目标¶
目标和最低目标是针对同一个实际达标率设置的两条阈值,共用同一考核周期:
- 目标:期望服务达到的可靠性水平。例如,目标为 99.9%,监控器类型要求正常运行时间占比达到 99.9%;指标类型要求成功数占总数的比例达到 99.9%。监控器类型的初始错误预算也由此目标计算。
- 最低目标:服务可接受的达标率下限。低于此下限时生成紧急事件,用于识别更严重的服务质量下降。
配置须满足 0 < 最低目标 < 目标 < 100。例如,目标为 99.9%、最低目标为 99.5% 时:
| 实际达标率 | 检测结果 |
|---|---|
| ≥ 99.9% | 达到目标。 |
| ≥ 99.5% 且 < 99.9% | 生成警告事件。 |
| < 99.5% | 生成紧急事件。 |
SLO 按自身达标率产生事件。需要发送通知时,关联告警策略,并在策略中配置对应事件等级的通知对象;通知时间、重复通知等行为按策略执行。
名称、SLI 类型、目标和最低目标保存后固定。其余配置的编辑说明见管理 SLO。
标签¶
在页面左上角通过添加 Tags关联全局标签,便于按业务、团队等归类和筛选 SLO。这些标签会写入该 SLO 后续生成的检测事件的 df_label 字段,可用于事件筛选和数据联动。
标签用于标识 SLO 及其事件;下面的分组维度用于按来源监控器事件中的字段值分别计算达标率。
监控器类型:关联 SLI¶
SLI(服务等级指标)是衡量服务质量的指标。在监控器类型下,SLI 配置项中选择的是一个或多个已有监控器,系统以这些监控器对应的正常运行时间占比衡量服务质量。
应选择能够代表同一考核对象的监控器。例如,考核支付服务时,可关联“支付接口响应过慢”和“支付请求错误率过高”两个监控器。任一监控器产生异常时,相应异常时段会计入 SLO;同一时段的多个异常会合并计算。扣分、达标率及错误预算的关系见监控器类型的计算说明。
分组维度¶
分组维度决定按哪些业务对象分别考核。支持 project(项目)、env(环境)、service(服务),可选择一个或多个字段。
| 配置方式 | 统计结果与适用场景 |
|---|---|
| 留空 | 将关联的 SLI 作为一个整体,合并异常时段后计算一份达标率,适合考核整个服务或业务的整体表现。 |
选择 service |
按每个服务分别计算。例如,payment-api 和 order-api 各有一份达标率,某个服务的异常计入该服务的结果。 |
选择 env、service |
按实际字段值组合分别计算,例如 prod + payment-api、staging + payment-api,适合分别考核同一服务在不同环境中的表现。 |
分组前,请确认来源监控器产生的异常事件包含所选字段及其值,例如通过监控器的检测维度传递 env、service。系统按这些字段归类异常,缺少任一所选字段的事件会被忽略,影响统计完整性。正常分组的补全会使用应用性能监测中的近期链路数据,需保证相应业务维度已随链路上报。
在 SLO 详情或 SLO 图表中,选择各分组维度的具体值,可查看对应组合的结果。各组合独立累计异常时长;如果需要考核项目整体,请创建仅按 project 分组的 SLO。修改分组配置后,从下一个检测周期起生效,历史数据按原有分组保留。
指标类型:配置总数与成功数¶
在总数和成功数中分别配置查询,支持图形化指标查询、DQL 和 PromQL。两项查询须覆盖相同的业务范围、计量单位和考核周期;成功数是总数中符合成功条件的数量,需满足 总数 > 0、0 ≤ 成功数 ≤ 总数。
每项查询应将每条时间线汇总为一个周期数量值。返回多条时间线时,系统将其数量相加;需要独立考核不同业务范围时,应分别创建 SLO。
DQL 示例:支付请求成功率¶
假设指标集 payment_requests 中,request_count 记录每个采集间隔内新增的请求数,service 标识服务,result 标识请求结果。要考核 payment-api 的请求成功率,可配置:
总数:
成功数:
将指标集、字段和标签替换为实际采集内容,时间范围由 SLO 的考核周期控制。若最近 30 天总数为 100,000、成功数为 99,950,则达标率为 99,950 ÷ 100,000 × 100% = 99.95%。
PromQL 示例:累计计数器¶
PromQL 按即时查询执行,需要在表达式中完成周期统计。例如,payment_requests_total 持续累加请求数,考核周期为 30 天时,可使用 increase 计算该周期内的增量:
总数:
成功数:
将指标名和标签替换为实际采集内容。更改考核周期时,同步调整两项表达式中的时间范围,例如将 [30d] 改为 [7d]。
总数和成功数应使用周期内的业务数量;耗时、百分位和已计算的成功率适合用于其他检测方式。
新建后需等待检测生成有效结果。出现无数据、总数为 0 或查询失败时,可按 SLO 详情中的说明检查数据。