先给结论:不要急着把只在特定时段出现的慢当作噪声删掉,也不要立刻为它重写整套监控。更稳的做法是保留原始时间戳证据,同时把采集频率和抓取来源拆开,用一段有边界的观察窗口确认它是否可复现;能复现就改写监控口径,不能复现再考虑退出该时段的高频采样。
白天正常、凌晨变慢,或者整点前后抖动,这类现象天然带有两种解释。一种是真实发生在源站、数据库或出口链路上的周期性压力,另一种只是采集方式在该时段发生了偏移,比如采样任务本身与备份、日志轮转或批处理撞在一起。
把这两种解释混在一起,会导致两个相反的错误:把采集噪声当成性能问题,浪费优化投入;或者把真实的周期性瓶颈当成偶发抖动,直接关掉告警。区分它们的关键不是看单次数值,而是看证据是否带有可对齐的时间特征。
一个可用的判断依据是:真实瓶颈通常与业务侧可观测的事件同步,例如定时任务、批量写入、缓存集中失效;采集侧问题则往往与监控自身的调度周期同步,并且换一个采集点后现象消失或改变形态。这两类证据指向完全不同的处理动作。
当现象出现频率低、每次持续很短,最优先的动作是保留而不是优化。具体做法是把该时段的原始响应时间、状态码、请求路径和服务端时间戳按原样落盘,不经过聚合或取平均。聚合会把几十秒的尖峰抹平,之后再也无法复查。
保留阶段要明确假设。假设你怀疑是整点批处理造成的,那么需要同时留下批处理任务的开始与结束时间,而不是只留一个慢请求样本。没有对照事件的时间线,单看一条慢记录无法排除网络抖动、客户端重试或上游限流。
保留的代价是存储和排查成本上升,所以它适合“现象尚未定位、且可能反复出现”的阶段。如果同一时段连续多天都能复现,保留就该升级为改写,而不是继续无限期收集。
改写针对的是采集方式本身有盲区的情况。常见盲区包括:采样间隔比故障持续时间还长,导致尖峰被跳过;只监控首页而故障发生在某个动态接口;多个采集点共用同一条出口链路,无法判断是局部还是全局。
改写的适用前提是,你已经通过保留阶段拿到了可复现的时间线,并且能指出当前口径为什么看不到它。此时可以做的动作包括:在该时段临时提高采样密度、增加一个独立来源的采集点、把监控目标从聚合指标换成单请求级别的记录。
动作的结果会直接决定下一步。如果提高采样密度后尖峰变得更清晰、且与业务事件对齐,说明这是真实瓶颈,下一步应转向定位具体依赖;如果加密采样后现象反而消失或变得零散,说明原先看到的很可能是采样与调度叠加造成的假象,此时应回到保留阶段重新核对,而不是继续加码监控。
退出不等于否认问题,而是承认当前证据不足以支撑继续投入。可以退出的条件通常有三类同时成立:现象在多个独立采集点都无法复现;该时段没有对应的业务事件或用户影响记录;继续追踪的边际成本已经高于潜在收益。
退出时仍要留下记录,写明观察窗口、采集方式和未复现的结论,避免以后有人重新踩同一条路。需要提醒的是,请求量、抓取量或某项统计归零,并不能单独证明处理正确,它同样可能来自采集中断、过滤规则变化或目标本身被移除,这些都需要另行核对。
如果现象只在某个搜索引擎的抓取时段出现,还要分别核查不同来源的支持情况,不要用一次观测推断所有抓取行为。把退出决定建立在“证据不足且成本过高”之上,而不是建立在“看起来没事了”之上。
假设监控显示每天 02:00 前后响应时间上升,持续约两分钟,其他时段正常。第一步保留:把这两分钟的原始请求记录、服务端时间戳和同期的定时任务日志放在一起,先不优化。
如果连续三天都能对齐到同一个任务,说明这是真实且可复现的周期性压力,此时改写监控口径,把该任务纳入统一时间线,并把它作为已知事件而不是未知告警处理。如果加密采样后现象消失,或者时间点随采集调度漂移,则说明更可能是采集侧假象,应退出该时段的高频采样,转而检查采集任务自身的资源占用。
两种走向的分界点不是数值大小,而是证据能否与独立事件对齐。对齐成立就改写并继续定位;对齐不成立就退出高频追踪,把资源留给可复现的问题。