SuperAPI AI 工具集

qa-observability

测试与质量

查看项目

更新于 10-15 11:58

技能介绍

QA Observability 是一个面向质量保证的可观测性技能,将日志、指标、追踪和性能剖析视为测试结果、发布就绪度和生产回归的证据。

用途 该技能用于在添加或验证可观测性时提供系统化指导。它把遥测数据当作 QA 信号和调试基础,帮助团队建立可诊断的集成与端到端流程,并以 SLO 为基础设置发布门禁。

主要能力

  • 建立最低可观测性标准:关联 ID、结构化日志、追踪和黄金指标(延迟、流量、错误、饱和度)。
  • 通过一个已知请求或故障验证遥测传输:应用发出、上下文传播、收集器接收和后端查询,并在最后观察到的阶段停止断言。
  • 让失败可诊断:每个集成或 E2E 失败应捕获追踪链接或追踪 ID 以及关联日志;关键降级路径应暴露结构化错误元数据,如限流码、重试提示和状态转换标记。
  • 定义 SLI/SLO 和错误预算策略,验证仪表盘选择已知遥测,并用合成条件和受控的非生产接收器测试告警评估与路由。未经明确授权不得通知真实响应人员。
  • 提供就绪检查清单、SLO 定义和告警规则模板,保留环境、服务版本、追踪/请求 ID、查询窗口、采样决策及各阶段结果。
  • 提供 Python CLI 脚本进行成熟度评分、SLO 错误预算分析和就绪报告生成。

使用方式 默认快速开始:若缺少关键上下文,需询问关键用户旅程、服务/依赖清单、环境(本地/预发/生产)、当前遥测栈和当前 SLO/SLA 承诺。建立最低标准后,用已知请求验证遥测传输。当仪表盘、SLO 或告警在范围内时,定义相关 SLI/SLO 和错误预算策略,验证仪表盘选择已知遥测,并用合成条件和受控非生产接收器测试告警评估与路由。

工作流:建立基线(日志、指标、追踪、关联和至少一个可诊断的关键旅程);使用 OpenTelemetry 插桩(先自动插桩,再在业务工作流边界添加手动 span);验证跨 HTTP、队列和 RPC 边界的上下文传播;定义 SLI/SLO、错误预算和燃烧率告警;让失败可诊断;在遥测可信后添加性能证据(剖析、负载测试、示例和基线)。

脚本使用:

评分可观测性成熟度(0–100),跨 6 个信号维度

python scripts/observability_scorer.py maturity --input data/sample-observability-profile.json

计算 SLO 错误预算燃烧率和状态标志

python scripts/observability_scorer.py slo --input data/sample-slo-data.json

生成完整就绪报告(成熟度 + SLO)到 Markdown 文件

python scripts/observability_scorer.py report --input data/sample-observability-profile.json --slos data/sample-slo-data.json --output report.md

脚本为仅使用标准库的 Python CLI 工具,需 Python 3.9+。回归测试需 pytest,运行 python3 -m pytest scripts/test_observability_scorer.py。

适用场景

  • 为集成和端到端流程添加或验证可观测性。
  • 定义 SLO、燃烧率告警和发布门禁。
  • 诊断生产异常且无假设、无复现的情况。
  • 评估可观测性成熟度并制定路线图。
  • 设计告警以减少疲劳,设计仪表盘层级和布局。
  • 结构化日志和成本控制,采样策略、尾部采样和示例。
  • eBPF 和 APM 工具(Beyla、Pixie、Honeycomb、SigNoz、Coroot)以及 LLM/AI 智能体可观测性。

限制

  • 日志和性能剖析在 OpenTelemetry 中依赖生态系统:在承诺供应商中立实现前需确认语言和后端支持。
  • OTel Span Events API(Span.AddEvent、Span.RecordException)正被弃用,转向基于日志的事件;新事件插桩应通过 Logs API 编写。
  • 尾部采样只能保留到达采样器的 span;头部丢弃的追踪无法在下游恢复。
  • 指标标签如用户 ID 和原始路径需限制基数;后端成本取决于信号和存储设计。
  • 成熟度评分是提供的自我评估,不是运行时证明。
  • 评分器仅接受完整窗口的 SLO 测量;其状态阈值是本地启发式,不是多窗口分页决策。
  • 避免将密钥或高基数 ID 记录为指标标签;避免在存在语义约定时发明自定义属性名;避免在没有采样和基数策略的情况下添加插桩;避免仅信任自动插桩来获得业务工作流可见性。
  • 选择供应商时不要凭记忆,应从 data/sources.json 开始并检查当前文档或发布。

相关技能包括 ops-devops-platform、data-sql-optimization、qa-debugging、qa-testing-strategy、qa-resilience、software-architecture-design、software-performance、qa-testing-performance 和 ai-coding-agents-observability-evals。