先给结论:面对只在特定时段出现的加载错误,正确做法不是等它再次发生,而是提前部署一个低开销的持续记录点,把“当时发生了什么”变成可回看的证据。假设情境:某电商站点每天 20:00–22:00 首页首屏明显变慢,白天正常,常规的 Lighthouse 测试和服务器日志都看不出异常。下面按这个假设情境,把捕捉短暂证据的决策过程写清。
特定时段问题最大的障碍是证据留存时间太短。服务器访问日志通常按天轮转,慢请求的耗时字段可能只保留聚合值;浏览器端的 Performance 记录默认不落盘,用户刷新后就消失。因此第一步不是加监控,而是确认现有数据源在问题时段结束后还能查到什么。
这个判断直接决定下一步:日志够用就做离线分析,日志不够就必须在问题时段之前把采集点部署好,而不是事后补救。
短暂证据的采集位置决定了能回答哪类问题。常见三个位置各有取舍:
假设情境中白天正常、夜间变慢,优先在源站层加分段耗时记录,再用浏览器端采样交叉验证。如果只在浏览器端采集,可能把 CDN 节点调度变化误判为源站问题。
采集不是指标越多越好,而是要能区分几种合理解释。同一个“夜间变慢”现象,至少有以下几种可能,需要不同的字段来区分:
如果记录里只有“总耗时”一个字段,上述四种解释无法区分。实际动作是:在问题时段前,把首字节时间、传输时长、资源域名、时间戳四项加入采集,问题结束后按时间戳切片对比。结果会直接指向下一轮排查方向——首字节上升查后端,传输上升查链路,多接口同时上升查主机资源。
回到假设情境:部署分段记录后,20:00–22:00 的数据显示首字节时间从白天的约 200ms 升至 1.5s,而传输时长和连接建立时间没有明显变化。据此可以排除出口拥塞和第三方脚本,把范围收窄到后端处理。
下一步动作是关联同一时段的主机指标,确认是否有定时任务、数据库慢查询或缓存失效集中出现。如果主机指标也同步升高,说明瓶颈在资源竞争;如果主机指标正常,则需要检查应用内部是否有按时间触发的逻辑,例如缓存过期策略或定时刷新。这个结果决定了是调整任务调度,还是修改缓存过期时间。
需要说明的是,请求量或抓取量在问题时段归零,并不能单独证明处理正确。它也可能是采集上报失败、采样未命中或流量本身下降造成的,仍需结合多来源数据交叉确认。
持续记录会带来存储和性能开销,适用条件是:问题时段可预期、单次采集开销低于问题本身的影响、且数据保留周期覆盖排查窗口。如果问题时段不可预期,则需要长期低采样运行,等复现后再提高采样率。无论哪种方式,都应先在一个非关键路径上验证采集脚本不会引入新的延迟,再推广到主站。
此外,如果站点依赖 robots.txt 或站点地图来管理抓取,要清楚这些手段与本次排查无关:robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。排查加载速度的短暂证据,应聚焦在请求耗时和资源时序上。