展开知识库目录

线上报错先看浏览器、应用、代理还是上游

浏览器、DNS/CDN、代理、应用、数据库和外部上游都可能失败。

先把问题看准

先画一次请求经过的层

浏览器、DNS/CDN、代理、应用、数据库和外部上游都可能失败。用时间、请求 ID、状态码和日志把同一次请求关联起来,先找第一处异常。

第 1 步

从用户现场开始

记录 URL、账号范围、步骤、时间、地区、浏览器、实际和预期,保留网络请求与响应。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

第 2 步

确认边缘与代理

检查 DNS、证书、CDN、负载均衡和 Nginx 实际命中的配置、状态和上游目标。

确认“确认边缘与代理”已经有可回查结果,再进入“检查应用”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 3 步

检查应用

按请求 ID 查应用日志、版本、实例、异常和资源,区分错误响应与进程不可用。

确认“检查应用”已经有可回查结果,再进入“检查数据和外部依赖”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 4 步

检查数据和外部依赖

关联慢查询、锁、队列、缓存和上游响应,统一时区并识别超时是谁先触发。

确认“检查数据和外部依赖”已经有可回查结果,再进入“用最小请求复测”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 5 步

用最小请求复测

在同一路径逐层旁路或替换,验证根因;任何生产变更先备份、校验和准备回滚。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“故障层级与请求时间线”。

完成后应能在“故障层级与请求时间线”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。

做到这里就可以停

报告要写确认层和未确认层

根因、证据、影响范围、缓解、修复、复测和监控分别记录。最后看到的 502 或超时不是自动等于上游根因。

进一步核对

参考资料与核对入口