SLO定义交互式工作坊Skill slo-workshop

此技能用于通过交互式工作坊帮助团队定义服务级别目标(SLOs),包括识别关键用户旅程、选择SLIs(服务级别指标)、设置SLO目标、建立错误预算政策和设计警报策略。关键词:SLO、SLI、错误预算、DevOps、监控、可观察性、服务可靠性、工作坊。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

name: slo-workshop description: 交互式SLO定义工作坊 - 指导定义SLIs、设置SLO目标、并建立错误预算策略,针对一个服务 allowed-tools: Read, Glob, Grep, Task, AskUserQuestion argument-hint: [service-name-or-context]

SLO工作坊命令

此命令运行一个交互式工作坊,帮助为服务定义SLOs(服务级别目标)。

目的

指导团队完成完整的SLO定义过程:

  1. 识别关键用户旅程
  2. 选择适当的SLIs(服务级别指标)
  3. 设置现实的SLO目标
  4. 建立错误预算策略
  5. 设计警报策略

工作流程

阶段1:服务理解

首先,理解服务上下文:

如果提供了服务名称或文件:

  • 在代码库中搜索该服务
  • 识别端点、依赖项和面向用户的功能
  • 查找现有指标、SLOs或监控配置

通过问题收集上下文:

  1. 这个服务为用户做什么?
  2. 主要用户是谁(内部/外部)?
  3. 关键用户旅程是什么?
  4. 对用户来说,“正常工作”意味着什么?

阶段2:SLI选择

指导选择有意义的SLIs:

展示SLI类别:

常见SLI类型:

1. 可用性
   "用户能访问服务吗?"
   测量:成功请求 / 总请求

2. 延迟
   "服务响应有多快?"
   测量:百分位请求持续时间(p50, p90, p99)

3. 正确性
   "服务返回正确结果吗?"
   测量:正确响应 / 总响应

4. 吞吐量
   "服务能处理负载吗?"
   测量:每时间单位处理的请求

5. 新鲜度
   "数据有多新?"
   测量:提供给用户的数据年龄

对于每个相关SLI类型,定义:

  • 什么算作“好”事件
  • 什么算作“有效”事件(分母)
  • 如何测量(指标、日志、合成)

阶段3:SLO目标设置

帮助设置适当的目标:

考虑因素:

  • 当前基线(我们今天达到什么?)
  • 用户期望(用户需要什么?)
  • 工程能力(我们能维持什么?)
  • 业务要求(合同要求什么?)

提供指导:

SLO目标指导:

起始点推荐:
- 可用性:从当前基线 - 0.1% 开始
- 延迟:从当前p99 + 20%缓冲 开始

常见目标:
- 99.9% = 每月43分钟停机时间
- 99.5% = 每月3.6小时停机时间
- 99% = 每月7.3小时停机时间

提示:
- 不要从100%开始(不可能维持)
- 不要设置无法测量的目标
- 保守目标更容易实现
- 可以随时间收紧目标

阶段4:错误预算策略

定义当错误预算消耗时发生什么:

错误预算计算:

错误预算 = 100% - SLO目标

示例:
SLO = 99.9%可用性
错误预算 = 0.1% = 每月43.2分钟

策略框架:

错误预算策略模板:

预算 > 50%:
- 正常开发速度
- 标准变更过程

预算 25-50%:
- 增加风险变更审查
- 优先可靠性改进

预算 < 25%:
- 暂停非关键功能工作
- 专注于可靠性改进

预算耗尽:
- 停止所有非关键部署
- 全员关注可靠性
- 为预算消耗事件进行事后分析

阶段5:警报策略

设计多窗口燃烧率警报:

解释燃烧率概念:

燃烧率警报:

燃烧率 = 消耗错误预算的速率

1x燃烧率 = 正好消耗月度预算
2x燃烧率 = 将在15天内耗尽预算
10x燃烧率 = 将在3天内耗尽预算

多窗口警报:
- 快速燃烧:1小时内14.4x速率(页面)
- 慢速燃烧:3天内3x速率(工单)

基于SLO目标定义警报阈值

阶段6:文档化

生成SLO文档:

# [服务名称] SLO定义

## 服务概述
[来自工作坊的描述]

## 关键用户旅程
1. [旅程1]
2. [旅程2]

## SLIs

### [SLI名称]
- 类型:[可用性/延迟等]
- 定义:[如何测量]
- 好事件:[什么算作好]
- 有效事件:[什么算作有效]

## SLO目标

| SLI | 目标 | 窗口 | 错误预算 |
|-----|------|------|----------|
| [SLI 1] | [%] | [天] | [时间] |

## 错误预算策略

### 预算 > 50%
[行动]

### 预算 25-50%
[行动]

### 预算 < 25%
[行动]

### 预算耗尽
[行动]

## 警报

| 警报 | 燃烧率 | 窗口 | 严重性 |
|-------|--------|------|--------|
| [名称] | [速率]x | [时间] | [页面/工单] |

## 审查计划
- 季度SLO审查
- 月度错误预算审查
- 重大事件后

使用示例

# 为特定服务启动工作坊
/sd:slo-workshop order-service

# 用上下文文件启动工作坊
/sd:slo-workshop @docs/services/payment-api.md

# 启动通用工作坊
/sd:slo-workshop

交互元素

在整个工作坊中,使用AskUserQuestion来:

  • 收集服务上下文
  • 验证SLI选择
  • 确认目标适当性
  • 审查错误预算策略

输出

工作坊产生:

  1. SLO定义文档 - 完整的SLO规范
  2. 实施清单 - 实施SLOs的步骤
  3. 审查计划 - 何时重新访问和调整

相关技能

此命令利用:

  • slo-sli-error-budget - SLO方法论细节
  • observability-patterns - 测量方法
  • distributed-tracing - 基于跟踪的SLIs

相关代理

对于无需交互式工作坊的SLO咨询:

  • observability-consultant - 通用可观察性指导