结论先说:如果故障只在特定时段出现,优先选择“持续记录”而不是“反复手动复现”,因为短暂错误的证据价值取决于它是否带有时间戳和请求上下文。但这条结论有一个反例——当错误窗口短于你现有监控的最小采集间隔时,持续记录同样会漏掉,此时应改为围绕该时段做高频定向采集。下面给出判断条件和具体动作。
两种做法都成立,取决于一个可量化的比较:错误持续时间与你能承受的采集频率。
代价不同:持续记录占用存储和请求预算,但覆盖全天;定向高频采集精度高,但依赖你对时段的猜测,猜错就一无所获。判断依据可以来自已有的访问日志——如果日志里能找到错误发生的时间分布,就先看分布,再决定用哪种。
只记录“成功/失败”不足以支撑后续判断,因为同一时段可能有多种原因。每次采集至少保留:
有了这四类字段,才能区分“服务器在特定时段返回 5xx”和“你的采集端在该时段网络抖动”。缺少请求上下文时,一条失败记录无法归因。
假设某页面在每天凌晨 2:00 到 2:10 之间返回异常,其余时间正常。你设置每 30 秒采集一次,连续三天。结果发现:
这两个观察指向不同方向:前者说明错误与目标资源或该时段的某个任务相关,后者说明不是采集端整体断网。此时下一步动作是把采集间隔在该时段内缩短到 5 秒,并在请求头中固定同一 User-Agent,看错误是否随请求频率变化。如果错误次数随频率上升而增加,更可能是服务端在该时段资源紧张;如果不变,则更可能是定时任务或缓存刷新导致。这个例子中的数字仅用于说明比较方法,不代表真实测量结果。
短暂错误消失后,容易把“不再出现”当成“已修复”。以下几种解释同样成立:
因此,请求量或错误数归零不能单独证明处理正确。要确认修复生效,需要在同一时段、同一频率下重新采集,并对照改动前后的记录。另外,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录;这些机制与“特定时段错误”是不同层面的问题,不要用它们解释短暂故障。
完成一轮定向采集后,把带时间戳的记录、采集脚本或命令、以及你观察到的时段规律整理成一份可复查的证据。如果证据指向服务端,交接给运维或后端时明确写出:错误时段、状态码分布、请求频率与错误数的对应关系。如果证据指向采集端,先更换网络出口或采集节点复测,再决定是否继续。只有当同一时段、同一请求条件下能稳定复现,才适合进入修复验证阶段;否则继续扩大采集窗口,而不是急于改动线上配置。