浏览 AI 知识库

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

线上 502 可能来自浏览器到上游之间的任何一层。固定同一个请求,沿代理、应用和依赖保存时间线,才能避免多人同时改动把证据抹掉。

先比较关键条件,再作选择

把自己的条件代入判断项;没有证据的维度保留未知,不用印象替代结论。

先别急着选

所有人一起改以后错误消失了,根因反而更难找到

用户看到 502,前端团队改请求,运维重启 Nginx,后端更换上游地址。多个层同时变化后错误暂时消失,却无法知道根因。

  • 同一 requestId 贯穿各层
  • 每层状态和耗时可见
  • 修复后从公开入口复测
请求链路记录

同一个 502 先按请求 ID 找第一处异常

层证据可能结论下一步
浏览器URL、时间、响应和网络请求用户确实命中目标路径继续查边缘
代理server/location、上游地址和状态代理命中错误 upstream核对配置和健康
应用请求 ID、版本、异常和资源应用返回 500 或未收到请求区分应用和代理
数据/上游慢查询、队列、第三方状态下游超时或限流做最小请求和安全缓解

状态和日志必须统一时间与请求 ID;最后一层错误不自动等于根因。

本例材料

先把本例的条件、限制和目标摆出来

需要确认本例内容
现有材料14:05 公开 URL 返回 502;浏览器 requestId、代理 access/error log、应用日志和上游状态均可查。
不能越过的边界沿同一请求时间线检查浏览器、DNS/TLS、代理、应用和上游;一次只验证一个层;不以重启代替诊断。
要交付的结果故障层级与请求时间线
决定依据

线上服务报错排查,哪些条件会改变最后选择

判断条件本例怎么核对
从用户现场开始记录 URL、账号范围、步骤、时间、地区、浏览器、实际和预期,保留网络请求与响应。
确认边缘与代理检查 DNS、证书、CDN、负载均衡和 Nginx 实际命中的配置、状态和上游目标。
检查应用按请求 ID 查应用日志、版本、实例、异常和资源,区分错误响应与进程不可用。
检查数据和外部依赖关联慢查询、锁、队列、缓存和上游响应,统一时区并识别超时是谁先触发。
用最小请求复测在同一路径逐层旁路或替换,验证根因;任何生产变更先备份、校验和准备回滚。
代入本例

线上服务报错排查:按本例条件得到的结论

可以确认

故障层级与请求时间线

时间线显示浏览器到代理成功,代理连接应用超时,应用日志又显示等待上游 30 秒;根因在上游超时而非前端。临时降级后原 URL 恢复,requestId 跨层对齐。

仍需确认

边界变化后需要重新判断

若缺少某层日志,只能保留假设,不能用错误码直接宣布归因。

常见失败

为什么“找到最慢一层,却没解释为什么”还不能交付

找到最慢一层,却没解释为什么

原因
时间线只有结果,没有最近变更和依赖状态
怎么改
补部署、配置和上游事件,复现后验证因果而非相关
验收方式

故障层级与请求时间线通过哪些检查才算完成

进一步核对

部署与线上:参考资料与核对入口