跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

observability-and-instrumentation · 让功能上线后能追到问题

为代码补充日志、指标、追踪和告警,回答生产中发生了什么。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

需要定位导出在哪个阶段失败;允许记录 request_id、匿名团队 ID、阶段、耗时、错误码;禁止报告正文。

输出

编辑示例 · 未运行

logger.info({
  event: "report_export_finished",
  request_id: requestId,
  team_id: pseudonymousTeamId,
  stage: "render",
  duration_ms: elapsedMs,
  outcome: "failed",
  error_code: "RENDER_TIMEOUT"
});

指标:按 outcome 统计成功率,按 stage 统计耗时;request_id 用于日志关联,不作为高基数指标标签。
复测:分别走成功和超时路径,确认可追到同一请求且无正文泄漏。

方法说明

为代码补充日志、指标、追踪和告警,回答生产中发生了什么。

具体任务

为报告导出失败设计结构化日志:为代码补充日志、指标、追踪和告警,回答生产中发生了什么。

为关键故障建立告警:选择用户受影响的指标、持续窗口、负责人和关联排查手册,减少噪声。

必需材料

关键用户路径及服务边界

现有日志、指标、追踪设施

可选材料

采样与吞吐约束

敏感字段清单

使用门槛

先定义哪些可观察信号能说明功能成功或失败。

这个 Skill 额外提供的方法

为要回答的问题选择日志、指标和 trace,关联请求路径而不是随处添加无意义输出。

编辑示例(未运行)

为报告导出失败设计结构化日志

任务:请根据下面的示例材料完成为报告导出失败设计结构化日志,把判断依据和待确认事项写清楚。

输入:
需要定位导出在哪个阶段失败;允许记录 request_id、匿名团队 ID、阶段、耗时、错误码;禁止报告正文。

结果片段:
```javascript
logger.info({
  event: "report_export_finished",
  request_id: requestId,
  team_id: pseudonymousTeamId,
  stage: "render",
  duration_ms: elapsedMs,
  outcome: "failed",
  error_code: "RENDER_TIMEOUT"
});
```

指标:按 outcome 统计成功率,按 stage 统计耗时;request_id 用于日志关联,不作为高基数指标标签。
复测:分别走成功和超时路径,确认可追到同一请求且无正文泄漏。

为要回答的问题选择日志、指标和 trace,关联请求路径而不是随处添加无意义输出。 该片段是编辑示例,用于说明交付形态,未运行上游技能。

首次任务

请使用「让功能上线后能追到问题」完成「为报告导出失败设计结构化日志」。
任务要求:为要回答的问题选择日志、指标和 trace,关联请求路径而不是随处添加无意义输出。

我的必需材料:
- 关键用户路径及服务边界:[请填写或粘贴]
- 现有日志、指标、追踪设施:[请填写或粘贴]

请基于上述实际材料输出:预期交付是与问题对应的埋点、关联字段和查询或告警建议。验收时应走一次成功与失败路径,确认能从记录中还原行为;只有“增加了一条日志”不足以证明问题已经可定位。缺少依据的地方单列为待确认,不编造事实;未执行的操作或测试明确标为未执行。

验收要求:
1. 成功与失败都能关联完整路径。
2. 敏感字段被排除或脱敏。
3. 告警能够导向负责人与具体排查动作。

验收方法

成功与失败都能关联完整路径

敏感字段被排除或脱敏

告警能够导向负责人与具体排查动作

依赖与准备

需要项目已有日志库与监控栈;跨服务追踪可能需 OpenTelemetry,外部平台凭据与数据出站权限单独配置。

使用边界

不要把密码、令牌、完整请求正文或私人数据写入遥测。

遥测平台外传、采样与保留期必须符合项目的数据权限。

排错

日志很多却找不到同一请求:统一关联 ID 并跨服务传递,检查缺失的边界。

指标系统成本突然增加:检查高基数标签,避免用户 ID、URL 全参数进入时序维度。

固定来源

https://github.com/addyosmani/agent-skills/blob/bcab6a1b8503100e8618c3b4e32cc78de43de769/skills/observability-and-instrumentation/SKILL.md