先给有条件的结论:如果错误只在特定时段出现,优先做“持续采样并保留原始响应”,而不是等错误复现后再去后台翻记录。只有当你能确定触发条件与某个可主动重放的请求完全一致时,才适合改用“定点重放”来替代持续采样。两种做法的代价不同:持续采样占用存储和请求预算,但能留下时间线;定点重放省资源,却可能因为触发条件没被完整复制而永远等不到错误。
收录入口相关的错误通常表现为收录状态查询失败、抓取响应异常或提交入口返回非预期结果。这类错误只在一段时间内出现,往往与对方系统的临时状态、你方服务器的时段性负载、或某个中间层在特定时间的处理逻辑有关。事后去查,错误已经不在,日志里可能只剩一条被覆盖的计数,或者后台只显示“正常”。
此时最容易犯的错,是把“现在正常”当成“问题已解决”。反过来,也不能因为一次查询失败就断定入口坏了。短暂错误的证据价值在于时间、请求形态和响应三者能否对上。
两种做法都成立,但适用条件不同。
选择依据可以简化成一句:说不清触发条件,就用持续采样;说得清,才用定点重放。如果两者都想做,先跑持续采样确定窗口,再在窗口内做定点重放,而不是反过来。
只记录“失败”两个字没有用。可复查的证据至少包含:
对照记录很关键。没有对照,你无法判断是入口整体异常,还是只有你这类请求异常。一个实际动作是:在采样脚本里同时发一条已知正常的请求,把两条结果并排写入同一份日志。这样当错误再次出现时,你能立刻看出差异出在请求形态还是出在时段。
需要提醒的是,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。因此如果错误与抓取限制或站点地图提交有关,采样时要分别记录,不要把抓取被拒直接当成收录入口故障。
假设你按固定间隔采样,连续几天都在同一时段捕获到失败,于是判断入口在该时段不稳定。但如果你的采样请求本身在该时段会经过一条你并不知情的代理或缓存层,而这条链路只在高峰期限流,那么你捕获到的其实是自己链路上的问题,不是入口的问题。此时持续采样反而放大了误判。
这个反例说明:当采样路径与被影响路径不一致时,采样结果不能直接归因。要排除它,需要确认采样请求走的是与真实提交或抓取相同的链路,或者至少记录链路差异。做不到这一点,采样只能证明“某个请求在该时段失败”,不能证明入口本身异常。
拿到带时间戳和对照的采样结果后,先做一件事:把失败记录按时间聚成窗口,看失败是否集中在某个可描述区间。如果窗口稳定,就进入定点重放,验证触发条件;如果窗口零散,说明触发条件还没找到,继续采样比急着改配置更划算。
只有当定点重放能在目标时段稳定复现、且采样路径与真实路径一致时,才适合把问题交给开发或平台方处理。否则你交出去的只是一段无法复现的现象,对方很可能回复“当前正常”。这一步的动作直接决定后续:证据能复现,下一步才是修复;证据不能复现,下一步仍是继续采样。