用途:该技能用于在功能上线前完成可观测性埋点,让生产环境行为可被看见和诊断。适用于新服务/接口上生产、重构关键路径、新增后台任务或队列 worker、性能回退排查,以及准备 on-call 轮值(需要告警与 runbook)。不适合一次性脚本、内部小工具、未决定上线的功能和纯前端静态页面。
主要能力与做法:
- 结构化日志:使用结构化字段而非字符串拼接,例如 logger.info("user.created", extra={"user_id": user.id, "email_domain": email.split("@")[1], "invited_by": inviter.id}),便于日志聚合查询与解析。
- RED 指标:按服务埋点 Rate、Errors、Duration,使用 counter 与 histogram,如 metrics.counter("http_requests_total", tags={"method": request.method, "path": request.path, "status": str(response.status_code)}).inc() 与 metrics.histogram("http_request_duration_seconds", tags={...}).observe(duration)。
- 追踪:分布式系统使用 OpenTelemetry,Trace ID 跨服务传播,为每个工作单元建立 span,生产环境按 1-10% 采样。
- USE 指标:对 CPU、内存、磁盘、网络等资源记录利用率、饱和度与错误数。
- 基于症状的告警:告警用户可见症状(如 5 分钟错误率大于 1%、P95 延迟大于 500ms),而非内部资源指标。
- 日志级别:ERROR 用于操作失败需人工关注,WARN 用于可恢复问题,INFO 用于重要状态变化,DEBUG 用于诊断且生产关闭;任何级别都不得记录密钥,非必要不记录 PII。
使用方式与限制:上线前检查清单包括关键状态变化有结构化日志、RED 指标已埋点、跨服务调用有追踪 span、已配置基于症状的告警、存在 runbook、仪表盘展示新指标。可观测性设计决策可交由 oracle agent 做只读推理,SLI/SLO 决策记录在 Prometheus 计划文件,事件证据流写入 ledger,使用任务工具推进发布与验证。反面模式包括字符串日志、日志含密码/token、告警基于 CPU 百分比、缺少 trace、无 runbook、生产环境 INFO 泛滥。其他实现细节暂未提供。