observability-and-instrumentation
为生产环境行为提供可见性和可诊断性而编写的仪器代码。用于添加日志、指标、追踪或告警时。用于发布任何将在生产环境运行的功能,并且你需要证明它确实工作时。用于报告生产环境问题但又无法从现有数据中判断发生了什么时。
分类
开发工具安装
热度:19
下载并解压到你的 skills 目录
复制命令,发送给智能体自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=addyosmani-skills-observability-and-instrumentation&locale=zh&source=copy
可观测性与代码插桩
技能概述
可观测性与代码插桩技能帮助开发者为生产环境代码添加日志、指标、追踪和告警能力,让系统行为从外部可见且可诊断。如果功能上线后没有遥测数据,第一个用户报告的 Bug 就会成为考古挖掘而非简单的查询。
适用场景
核心功能
常见问题
什么时候应该为代码添加监控?
在编写功能代码的同时就应该添加监控,而不是在功能"完成"之后。监控是功能的一部分,就像测试一样。如果功能上线时没有遥测数据,第一次生产事故时你将无法判断发生了什么,到时候添加监控的成本远高于开发时一次写好。
生产环境发生事故时如何快速定位问题?
首先确保每个请求都有关联 ID(Correlation ID)贯穿所有日志、追踪和跨服务调用。然后在 Tracing UI 中跟随单个请求的完整路径,查看每个 hop 的耗时。同时查询结构化日志中的事件字段(如
payment_failed、errorCode)和 RED 指标的 p95/p99 延迟,判断是业务逻辑问题、第三方超时还是资源饱和。如果没有这些遥测数据,定位问题只能靠猜测和反复修改尝试。为什么告警太多会导致团队麻木?
因为告警如果基于系统内部原因(CPU 使用率、内存、重启次数)而非用户症状,会在系统正常运行时频繁触发,而真正的用户故障却被漏掉。告警疲劳让运维人员习惯性地忽略所有告警。正确做法是只对用户可感知的症状(错误率、延迟、队列积压)建立告警,并且每个告警必须可操作——如果默认反应是"忽略它,它会自愈",那这个告警应该删除。