采样频率低,不等于短时异常一定抓不到;真正决定成败的是你能否把“异常发生的时间窗口”与“下一次采样点”对齐。如果异常持续几秒到几分钟,而工具每半小时才取一次数,最稳妥的做法不是盲目调高频率,而是先判断异常属于可复现的周期性波动,还是随机偶发。前者可以用错峰采样或事件触发补齐,后者只能靠日志或埋点旁路记录。
采样频率低时,最容易被误判的是周期性异常。假设某功能每天上午十点前后出现短暂失败,而工具每三十分钟采样一次,你看到的可能只是十点和十点半两个正常点,误以为当天无事。此时应先把已知异常时间点与采样时间点列在同一时间轴上,观察两者是否总差一个固定间隔。如果异常总落在两个采样点之间,说明问题出在采样相位,而不是异常不存在。
判断依据可以简化为两个条件:异常是否在相近时间段反复出现;异常持续时间是否短于采样间隔。两个条件同时成立,优先调整采样时机;只满足其中一个,则应先补日志,再决定是否改频率。
当异常在固定时段反复出现,而工具又无法立刻提高频率时,可以把采样点整体前移或后移,让原本被跳过的窗口落入采样范围。具体动作是:先记录连续三到五天的异常发生时段,再把采样时间调整为覆盖这些时段的偏移值,而不是简单地把间隔减半。这样做的结果是,你能在不增加总采样次数的前提下,观察到原本被漏掉的短时波动。
但这一方法有明确边界:它只适用于异常时段相对稳定、且你能够提前知道大致窗口的情况。如果异常发生时间每天漂移,错峰采样只会把漏点从一个位置挪到另一个位置,不能真正解决问题。
如果异常没有固定时间规律,提高采样频率往往只是增加成本,却未必能撞上异常。更实际的做法是设置事件触发:当某个关键指标越过阈值、或某类错误码出现时,才记录一次完整快照。这样采样频率名义上仍然很低,但异常发生时会被单独捕捉。
另一种选择是旁路日志。把工具采样与业务日志分开:工具继续按原频率做趋势观察,日志则按请求或按错误记录原始事件。两者对照时,日志负责回答“异常那一刻发生了什么”,工具负责回答“整体趋势是否异常”。这种分工的代价是日志量会上升,需要提前确认存储和检索成本是否可接受。
假设某软件营销页面在投放后出现短时转化下降,每次持续约两分钟,工具每十五分钟采样一次。若下降总在广告预算集中消耗的时段出现,属于可复现的周期性异常,应优先调整采样相位,把采样点移入该时段。若下降随机出现在不同日期、不同渠道,则更适合用事件触发记录转化失败的具体请求,而不是把采样间隔从十五分钟改成一分钟。
这个例子的关键不是数字本身,而是比较方法:先确认异常是否可复现,再决定是改采样时机,还是改记录方式。两种选择成立的条件不同,不能直接照搬。
调整采样后,不要只看异常是否“消失”。如果异常不再出现,仍需确认是采样点真的覆盖了异常窗口,还是异常本身在这几天没有发生。可以保留一份未调整前的对照记录,比较调整前后同一时段的原始日志数量、错误码分布和请求量变化。若这些旁路指标仍然显示异常,而工具采样报告正常,说明问题在采样覆盖,不在异常消失。
反过来,如果旁路日志也没有记录到异常,而工具报告仍然波动,则要检查工具自身的聚合逻辑是否把短时峰值平均掉了。此时下一步不是继续调频率,而是核对工具的统计口径和聚合周期,确认它是否按平均值、最大值还是分位数呈现数据。只有把采样、日志和聚合三层分开看,才能避免把“没采到”误判为“没发生”。