关于 observability-designer
面向工程和 SRE 团队的生产环境可观测性设计技能。脚本可生成 Grafana 仪表板规格并分析告警配置,内容涵盖指标、日志、追踪和 SLO。
主要功能
- 01生成 Grafana 仪表板规格
- 02分析告警噪声与重复项
- 03发现告警覆盖缺口
- 04提供指标、日志和追踪指引
- 05搭建 SLI/SLO 框架初稿
适用场景
- 01创建服务仪表板规格
- 02检查告警规则中的噪声
- 03查找监控覆盖缺口
- 04起草 SLI/SLO 框架
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill observability-designer安装后在 Claude Code 中输入/observability-designer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdassets/sample_alerts.jsonsample_service_api.jsonsample_service_web.jsonexpected_outputs/sample_dashboard.jsonsample_slo_framework.jsonreferences/alert_design_patterns.mddashboard_best_practices.mdslo_cookbook.mdscripts/alert_optimizer.pydashboard_generator.pyslo_designer.py详细介绍
Observability Designer (POWERFUL)
Category: Engineering
Tier: POWERFUL
Description: 为生产系统设计全面的可观测性策略,包括 SLI/SLO 框架、告警优化和仪表盘生成。
Overview
Observability Designer 围绕三大支柱(指标、日志、链路追踪)创建可直接用于生产环境的仪表盘、告警配置和监控策略。
何时不使用 → slo-architect。 涉及 SLO/SLI 设计、错误预算计算、多窗口燃烧率告警阈值以及 SLO 评审关卡的工作,请转交 slo-architect,它是该部分的权威 Skill。本 Skill 的 slo_designer.py 仅生成快速脚手架。本 Skill 的职责范围是:仪表盘(dashboard_generator.py)和告警噪音降低(alert_optimizer.py)。
Quick Start
# Dashboard spec (Grafana JSON + docs) for a service
python3 scripts/dashboard_generator.py --service-type api --name payments --criticality critical --role sre --format grafana -o dashboard.json --doc-output dashboard.md
# Analyze an existing alert config for noise, duplicates, and coverage gaps
python3 scripts/alert_optimizer.py --input alerts.json --analyze-only --report alert_report.json
# ...then emit the optimized config once the report is reviewed:
python3 scripts/alert_optimizer.py --input alerts.json --output alerts_optimized.json
# Quick SLO scaffold (hand off to slo-architect for the real error-budget work)
python3 scripts/slo_designer.py --service-type api --criticality high --user-facing true --service-name payments -o slo_scaffold.json
验证循环: 部署优化后的告警后,在一个值班轮次内跟踪报告中的噪音指标;如果可操作告警比例没有改善,请针对线上配置重新运行 --analyze-only 并迭代。在关闭任务之前,将生成的仪表盘导入 Grafana,并确认所有黄金信号面板都能正常渲染实时数据。
Core Competencies
SLI/SLO/SLA 框架设计
- 服务等级指标(SLI): 定义能够反映服务健康状况的可度量信号
- 服务等级目标(SLO): 基于用户体验设定可靠性目标
- 服务等级协议(SLA): 建立面向客户的承诺及相应后果
- 错误预算管理: 计算并跟踪错误预算消耗情况
- 燃烧率告警: 多窗口燃烧率告警,主动保护 SLO
可观测性三大支柱
指标
- 黄金信号: 延迟、流量、错误和饱和度监控
- RED 方法: 面向请求驱动型服务的速率、错误和耗时
- USE 方法: 面向资源监控的使用率、饱和度和错误
- 业务指标: 收入、用户参与度和功能采用情况跟踪
- 基础设施指标: CPU、内存、磁盘、网络以及自定义资源指标
日志
- 结构化日志: 基于 JSON 的日志格式,字段保持一致
- 日志聚合: 集中式日志收集与索引策略
- 日志级别: 合理使用 DEBUG、INFO、WARN、ERROR、FATAL 级别
- 关联 ID: 在分布式系统中追踪请求
- 日志采样: 为高吞吐系统进行数据量管理
链路追踪
- 分布式追踪: 端到端请求流可视化
- Span 设计: 有意义的 Span 边界与元数据
- 追踪采样: 兼顾性能与成本的智能采样策略
- 服务拓扑图: 通过追踪数据自动发现依赖关系
- 根因分析: 基于追踪的排障工作流
仪表盘设计原则
信息架构
- 层级结构: 总览 → 服务 → 组件 → 实例的逐级下钻路径
- 黄金比例: 80% 运营指标,20% 探索性指标
- 认知负荷: 每个仪表盘屏幕最多 7±2 个面板
- 用户旅程: 基于角色的仪表盘画像(SRE、开发者、管理层)
可视化最佳实践
- 图表选择: 趋势用时间序列图,分布用热力图,状态用仪表盘
- 色彩理论: 红色表示严重,琥珀色表示警告,绿色表示健康状态
- 参考线: SLO 目标、容量阈值和历史基线
- 时间范围: 默认使用有意义的时间窗口(事件排查用 4 小时,趋势分析用 7 天)
面板设计
- 指标查询: 使用合理聚合的高效 Prometheus/InfluxDB 查询
- 告警集成: 在相关面板上显示可视化的告警状态指示器
- 交互元素: 模板变量、下钻链接和注释叠加层
- 性能: 通过查询优化实现亚秒级渲染
告警设计与优化
告警分级
- 严重级别:
- Critical: 服务中断、SLO 消耗速率过高
- Warning: 接近阈值、非面向用户的问题
- Info: 部署通知、容量规划告警
- 可操作性: 每条告警都必须有明确的响应动作
- 告警路由: 根据严重级别和团队归属制定升级策略
防止告警疲劳
- 信号与噪声: 优先高精确率(少误报),而非高召回率
- 滞后机制: 触发与恢复告警使用不同的阈值
- 抑制: 在已知故障期间抑制依赖告警
- 分组: 将相关告警合并为单条通知
告警规则设计
- 阈值选择: 使用统计方法确定阈值
- 窗口函数: 合理的平均窗口和百分位计算
- 告警生命周期: 明确的触发条件和自动恢复条件
- 测试: 基于历史数据验证告警规则
运行手册生成与事件响应
运行手册结构
- 告警上下文: 告警的含义及触发原因
- 影响评估: 面向用户与内部影响的评估
- 排查步骤: 按顺序排列的故障排查流程,并附带时间估计
- 处理动作: 常见修复方法与升级流程
- 事后跟进: 后续任务与预防措施
事件检测模式
- 异常检测: 使用统计方法检测异常模式
- 复合告警: 针对复杂故障模式的多信号告警
- 预测性告警: 基于容量与趋势的前瞻性告警
- 金丝雀监控: 通过渐进式部署监控实现早期发现
黄金信号框架
延迟监控
- 请求延迟: 跟踪 P50、P95、P99 响应时间
- 队列延迟: 在处理队列中等待的时间
- 网络延迟: 服务间通信延迟
- 数据库延迟: 查询执行与连接池指标
流量监控
- 请求速率: 每秒请求数及突发检测
- 带宽使用: 网络吞吐量与容量利用率
- 用户会话: 活跃用户追踪与会话时长
- 功能使用: API 端点与功能采用率指标
错误监控
- 错误率: 跟踪 4xx 与 5xx HTTP 响应码
- 错误预算: 基于 SLO 的错误率目标与消耗情况
- 错误分布: 错误类型分类与趋势分析
- 静默失败: 检测没有 HTTP 错误的处理失败
饱和度监控
- 资源利用率: CPU、内存、磁盘和网络使用情况
- 队列深度: 处理队列长度与等待时间
- 连接池: 数据库与服务连接的饱和情况
- 速率限制: API 限流与配额耗尽追踪
分布式追踪策略
追踪架构
- 采样策略: 头部采样、尾部采样与自适应采样
- 追踪传播: 跨服务边界的上下文传播
- Span 关联: 父子关系建模
- 追踪存储: 保留策略与存储优化
服务埋点
- 自动埋点: 基于框架自动生成追踪
- 手动埋点: 为业务逻辑创建自定义 Span
- Baggage 处理: 横切关注点的传播
- 性能影响: 埋点开销的测量与优化
日志聚合模式
采集架构
- Agent 部署: 日志传输 Agent 策略(推送与拉取)
- 日志路由: 基于主题的路由与过滤
- 解析策略: 结构化与非结构化日志处理
- Schema 演进: 日志格式版本管理与迁移
存储与索引
- 索引设计: 针对常见查询模式优化字段索引
- 保留策略: 基于时间和数据量的日志保留
- 压缩: 日志数据压缩与归档策略
- 搜索性能: 查询优化与结果缓存
可观测性成本优化
数据管理
- 指标保留: 根据指标重要性实施分层保留
- 日志采样: 通过智能采样降低摄取成本
- 链路追踪采样: 具有成本效益的链路追踪采集策略
- 数据归档: 为历史可观测性数据提供冷存储
资源优化
- 查询效率: 优化指标与日志查询
- 存储成本: 为不同类型的数据选择合适的存储层级
- 摄取速率限制: 控制数据摄取量以管理成本
- 基数管理: 高基数指标的检测与缓解
脚本概览
本技能包含三个用于全面可观测性设计的 Python 脚本:
1. SLO 设计器(slo_designer.py)
根据服务特征生成完整的 SLI/SLO 框架:
- 输入: 服务描述 JSON(类型、关键程度、依赖关系)
- 输出: SLI 定义、SLO 目标、错误预算、燃烧速率告警、SLA 建议
- 功能: 多窗口燃烧速率计算、错误预算策略、告警规则生成
2. 告警优化器(alert_optimizer.py)
分析并优化现有告警配置:
- 输入: 包含规则、阈值和路由的告警配置 JSON
- 输出: 优化报告与改进后的告警配置
- 功能: 噪声检测、覆盖缺口识别、重复项识别、阈值优化
3. 仪表盘生成器(dashboard_generator.py)
创建全面的仪表盘规格:
- 输入: 服务/系统描述 JSON
- 输出: 兼容 Grafana 的仪表盘 JSON 与文档
- 功能: 黄金信号覆盖、RED/USE 方法、下钻路径、基于角色的视图
集成模式
监控栈集成
- Prometheus: 指标采集与告警规则生成
- Grafana: 仪表盘创建与可视化配置
- Elasticsearch/Kibana: 日志分析与仪表盘集成
- Jaeger/Zipkin: 分布式链路追踪配置与分析
CI/CD 集成
- 流水线监控: 构建、测试与部署的可观测性
- 部署关联: 发布影响追踪与回滚触发
- 功能开关监控: A/B 测试与功能灰度发布的可观测性
- 性能回归: 在流水线中自动化性能监控
事件管理集成
- PagerDuty/VictorOps: 告警路由与升级策略
- Slack/Teams: 通知与协作集成
- JIRA/ServiceNow: 事件跟踪与解决工作流
- 事后复盘: 自动化事件分析与改进跟踪
高级模式
多云可观测性
- 跨云指标: 统一 AWS、GCP、Azure 的指标
- 网络可观测性: 跨云连接监控
- 成本归因: 云资源成本追踪与优化
- 合规监控: 安全与合规状态追踪
微服务可观测性
- 服务网格集成: Istio/Linkerd 可观测性配置
- API 网关监控: 请求路由与速率限制的可观测性
- 容器编排: Kubernetes 集群与工作负载监控
- 服务发现: 动态服务监控与健康检查
机器学习可观测性
- 模型性能: 准确率、漂移与偏差监控
- 特征存储监控: 特征质量与新鲜度追踪
- 流水线可观测性: ML 流水线执行与性能监控
- A/B 测试分析: 统计显著性与业务影响衡量
最佳实践
组织协同
- SLO 设定: 产品与工程团队协作制定目标
- 告警归属: 明确升级路径与团队职责
- 仪表板治理: 集中管理仪表板并制定相关标准
- 培训计划: 团队学习可观测性工具与实践
技术卓越
- 基础设施即代码: 对可观测性配置进行版本控制
- 测试策略: 告警规则测试与仪表板验证
- 性能监控: 跟踪可观测性系统自身的性能
- 安全考量: 可观测性中的访问控制与数据隐私
持续改进
- 指标复盘: 定期评估 SLI/SLO 的有效性
- 告警调优: 持续优化告警阈值与路由规则
- 仪表板演进: 基于用户反馈改进仪表板
- 工具评估: 定期评估可观测性工具的有效性
评论
支持 Markdown