关于 sre-runbooks
sre-runbooks 是供 SRE 团队和 AI Agent 使用的技能,提供标准化的故障处理与维护流程。它支持搜索和执行操作手册、生成定制清单、通过告警触发流程及追踪版本。
主要功能
- 01按 ID、类型或关键词查找操作手册
- 02执行操作手册步骤
- 03生成环境专属检查清单
- 04由监控告警触发操作手册
- 05追踪操作手册版本
适用场景
- 01故障期间查找处理流程
- 02执行例行维护步骤
- 03为特定环境准备检查清单
- 04一致地响应监控告警
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill sre-runbooks安装后在 Claude Code 中输入/sre-runbooks确认已加载。
详细介绍
sre-runbooks
用途
此技能提供标准化的 SRE 操作手册,用于在 DevOps 环境中管理事件和执行系统维护。它可访问预定义流程,确保对停机或升级等问题作出一致响应。
何时使用
在正在发生的事件中快速查阅、执行例行维护任务或为新 SRE 团队成员提供入职指导时,请使用此技能。在面临停机、扩缩容问题或合规检查的生产环境中应用此技能,以遵循最佳实践。
主要功能
- 按 ID、类型或关键词(例如“停机”或“数据库”)检索操作手册。
- 执行操作手册中的自动化步骤,例如运行脚本或 API 调用。
- 根据操作手册模板为特定环境生成自定义检查清单。
- 与监控工具集成,在收到警报时触发操作手册。
- 支持操作手册的版本管理,以追踪随时间发生的更改。
使用模式
通过 sre-cli 工具或 AI Agent 代码中的 API 调用来调用此技能。使用前,务必设置环境变量 $SRE_API_KEY 进行身份验证。使用 CLI 时,在命令前添加身份验证检查。在代码中,将此技能作为模块导入,并使用所需参数调用函数。示例模式:先检查操作手册是否存在,再在 try-catch 块中执行。
常用命令/API
使用 sre-cli 直接访问,或使用 REST API 进行程序化集成。所有命令都要求在环境中设置 $SRE_API_KEY。
-
CLI 命令:列出操作手册
sre-cli runbook list --filter sre --output json
此命令会获取带有 SRE 标签的操作手册 JSON 列表;使用--filter可筛选“devops”等标签。 -
CLI 命令:获取特定操作手册
sre-cli runbook get --id 456 --format markdown
以 Markdown 格式获取 ID 为 456 的操作手册;添加--format yaml可输出 YAML。 -
API 端点:检索操作手册
GET https://api.openclaw.com/sre-runbooks/v1/runbooks/{id}
请求头:Authorization: Bearer $SRE_API_KEY
响应:包含操作手册详情的 JSON 对象,例如 {"id": 456, "steps": ["Step 1: Check logs"]}。 -
API 端点:执行操作手册步骤
POST https://api.openclaw.com/sre-runbooks/v1/runbooks/{id}/execute
请求体:{"step": 1, "params": {"environment": "prod"}}
此操作会使用生产环境参数运行操作手册的第一步。
配置输入支持 JSON 或 YAML 格式。配置文件示例(runbook-config.json):
{
"id": "789",
"environment": "dev",
"overrides": {"timeout": 300}
}
集成说明
将此技能添加为代码库中的依赖项,即可将其集成到 AI Agent 的工作流中。使用 $SRE_API_KEY 进行身份验证;在部署脚本中通过环境变量设置该密钥。例如,在 Node.js 应用中,通过 npm install sre-runbooks-sdk 安装,然后导入并初始化:
const sreSDK = require('sre-runbooks-sdk');
sreSDK.init({ apiKey: process.env.SRE_API_KEY, baseUrl: 'https://api.openclaw.com' });
确保 Agent 通过实现带指数退避的重试逻辑来处理速率限制(例如,每分钟 100 次请求)。对于 CI/CD,可在流水线中嵌入操作手册,并使用 Webhook 在 Git 事件发生时触发。
错误处理
始终将技能调用包装在错误处理程序中。对于 CLI 命令,请检查退出代码并解析 stderr。对于 API 调用,请捕获 HTTP 错误(例如,身份验证失败时返回 401,操作手册不存在时返回 404)。Python 示例:
import sre_runbooks
try:
response = sre_runbooks.get_runbook(id=123, api_key=os.environ['SRE_API_KEY'])
except sre_runbooks.AuthError:
log_error("Authentication failed; check $SRE_API_KEY")
except sre_runbooks.NotFoundError:
fallback_to_default_runbook()
常见问题:无效的 API 密钥会返回 401;请提示用户重新进行身份验证。速率限制错误(429)要求等待 5 秒后重试。
具体使用示例
示例 1:处理数据库故障
首先,查询相关运行手册:sre-cli runbook get --id 123。然后,执行以下步骤:
steps = sre_runbooks.execute(id=123, params={"db_type": "postgres"})
这会获取并运行故障处理流程,输出日志供审核。
示例 2:执行例行系统维护
使用 API 安排维护运行手册:
POST https://api.openclaw.com/sre-runbooks/v1/runbooks/456/schedule
Body: {"time": "2023-10-01T02:00:00Z", "params": {"systems": ["web", "cache"]}}
这会自动执行更新,确保系统完成修补且不中断服务。
图关系
- 相关工具:devops-tools(提供共享的 DevOps 实用工具)
- 依赖项:monitoring-skills(用于集成告警)
- 所属集群:devops-sre(此技能的主要集群)