QA可观测性 qa-observability

此技能用于实现和验证质量工程的可观测性,以提升软件系统的可靠性、性能和调试效率。它涵盖OpenTelemetry日志、指标、追踪、W3C追踪上下文传播、SLI/SLO定义、错误预算管理、燃尽率告警、基于追踪的测试失败调试、性能剖析以及APM工具集成。关键词:QA可观测性、性能工程、OpenTelemetry、SLO、追踪、测试、DevOps、APM。

测试 0 次安装 0 次浏览 更新于 3/7/2026

name: qa-observability description: “实现和验证质量工程的可观测性:OpenTelemetry日志/指标/追踪、W3C追踪上下文传播、SLI/SLO + 错误预算发布门禁、燃尽率告警、基于追踪的测试失败调试、采样/基数/成本控制、性能剖析(CPU/内存/连续)、合成/RUM信号,以及APM堆栈集成(Prometheus/Grafana/Jaeger/Tempo/Loki/Datadog/New Relic)。”

QA可观测性与性能工程

使用遥测(日志、指标、追踪、剖析)作为QA信号和调试基础。

核心参考:

默认QA立场

  • 将遥测视为验收标准的一部分(特别是对于集成/E2E测试)。
  • 要求关联:request_id + trace_id(traceparent)跨边界。
  • 偏好基于SLO的发布门禁和燃尽率告警,而非原始基础设施阈值。
  • 预算开销:采样、基数、保留和成本是质量约束。
  • 默认情况下,对PII/秘密进行编辑(日志和属性)。

核心工作流程

  1. 建立最低标准(日志 + 指标 + 追踪 + 关联)。
  2. 使用OpenTelemetry进行仪表化(首先自动仪表化,然后为关键路径添加手动跨度)。
  3. 验证跨服务边界的上下文传播(traceparent输入/输出)。
  4. 定义SLI/SLO和错误预算策略;设置燃尽率告警。
  5. 使失败可诊断:每次测试失败时捕获追踪链接 + 关键日志。
  6. 只有在遥测可靠后,才进行剖析和负载测试;与基线进行验证。

快速参考

任务 推荐默认 备注
追踪 OpenTelemetry + Jaeger/Tempo 尽可能通过Collector使用OTLP导出器
指标 Prometheus + Grafana 使用直方图处理延迟;注意基数
日志记录 结构化JSON + 关联ID 切勿记录秘密/PII;积极编辑
可靠性门禁 SLOs + 错误预算 + 燃尽率告警 基于持续燃烧/回归门禁发布
性能 剖析 + 负载测试 + 预算 为间歇性问题添加连续剖析
零代码可见性 eBPF(OpenTelemetry零代码)+ 连续剖析(Parca/Pyroscope) 当代码更改不可行时使用

导航

需要时打开这些指南:

如果用户需要… 阅读 同时使用
一个最小化、生产就绪的基线 references/core-observability-patterns.md assets/checklists/template-observability-readiness-checklist.md
Node/Python仪表化设置 references/opentelemetry-best-practices.md assets/opentelemetry/nodejs/opentelemetry-nodejs-setup.md, assets/opentelemetry/python/opentelemetry-python-setup.md
跨服务的工作追踪传播 references/distributed-tracing-patterns.md assets/checklists/template-observability-readiness-checklist.md
SLOs、燃尽率告警和发布门禁 references/slo-design-guide.md assets/monitoring/slo/slo-definition.yaml, assets/monitoring/slo/prometheus-alert-rules.yaml
基于证据的剖析/负载测试 references/performance-profiling-guide.md assets/load-testing/load-testing-k6.js, assets/load-testing/template-load-test-artillery.yaml
成熟度模型和路线图 references/observability-maturity-model.md assets/checklists/template-observability-readiness-checklist.md
应避免的事项以及如何修复 references/anti-patterns-best-practices.md assets/checklists/template-observability-readiness-checklist.md

实施指南(深度探讨):

  • references/core-observability-patterns.md
  • references/opentelemetry-best-practices.md
  • references/distributed-tracing-patterns.md
  • references/slo-design-guide.md
  • references/performance-profiling-guide.md
  • references/observability-maturity-model.md
  • references/anti-patterns-best-practices.md

模板(复制/粘贴):

  • assets/checklists/template-observability-readiness-checklist.md
  • assets/opentelemetry/nodejs/opentelemetry-nodejs-setup.md
  • assets/opentelemetry/python/opentelemetry-python-setup.md
  • assets/monitoring/slo/slo-definition.yaml
  • assets/monitoring/slo/prometheus-alert-rules.yaml
  • assets/monitoring/grafana/grafana-dashboard-slo.json
  • assets/monitoring/grafana/template-grafana-dashboard-observability.json
  • assets/load-testing/load-testing-k6.js
  • assets/load-testing/template-load-test-artillery.yaml
  • assets/performance/frontend/template-lighthouse-ci.json
  • assets/performance/backend/template-nodejs-profiling-config.js

精选来源:

  • data/sources.json

范围边界(交接)

  • 纯基础设施监控(Kubernetes, Docker, CI/CD):../ops-devops-platform/SKILL.md
  • 数据库查询优化(SQL调优、索引):../data-sql-optimization/SKILL.md
  • 应用程序级调试(堆栈追踪、断点):../qa-debugging/SKILL.md
  • 测试策略设计(覆盖率、测试金字塔):../qa-testing-strategy/SKILL.md
  • 弹性模式(重试、断路器):../qa-resilience/SKILL.md
  • 架构决策(微服务、事件驱动):../software-architecture-design/SKILL.md

工具选择说明(2026)

  • 默认情况下,尽可能使用OpenTelemetry + OTLP + Collector。
  • 偏好基于SLO的燃尽率告警,而非原始基础设施指标告警。
  • 将采样、基数和保留视为质量的一部分(而不是事后考虑)。
  • 当被要求选择供应商/工具时,从data/sources.json开始,并在环境允许的情况下使用当前文档/发布验证时间敏感声明。