结论先行:如果短时异常持续的时间明显短于采样间隔,提高采样频率通常不是第一选择,把“连续采样”换成“带触发条件的连续记录”更实际。只有当异常本身持续足够长、且你能承担存储与噪声成本时,才值得整体调高频率。判断依据不是感觉,而是异常持续时长与采样间隔的比值。
假设一个异常每次只出现几秒,而采样间隔是几分钟,那么无论采多少次,命中的概率都很低。此时真正的问题不是频率,而是采样方式:定点采样只能看到时间点上的状态,看不到两点之间发生了什么。
可以用一个简单比较来估算:设异常持续时长为 T,采样间隔为 I。若 T 远小于 I,命中概率大致按 T/I 的量级下降。这个估算只是帮助你判断方向,不代表真实命中率,因为异常出现的时间分布往往不均匀。
由此得到两个成立条件:
全量提频的代价很直接:数据量按倍数增长,短时异常会被淹没在正常波动里,排查时需要额外做聚合和过滤。它的优势是事后可以回看任意时间窗口,不依赖事先设定的触发条件。
触发式记录的代价是依赖阈值设计。阈值定得太松,记录里全是正常数据;定得太紧,真正的异常反而被漏掉。它的优势是数据量可控,短时异常一旦触发就能保留前后一段上下文。
选择条件可以这样定:如果你还不知道异常长什么样、需要先做探索,先临时全量提频一段时间,用这批数据确定异常特征;如果异常特征已经清楚,就改用触发式记录,把频率留给触发后的高密度采样。
如果异常不是“持续一段时间”,而是瞬时抖动,例如一次请求超时或一次写入失败,那么触发式记录也可能失效:触发动作本身有延迟,等你开始记录时异常已经结束。
这种情况下,靠提高采样频率同样无效,因为问题出在采集链路而非采样间隔。合理做法是让被观测对象在异常发生时直接产生一条事件记录,而不是靠外部轮询去发现它。此时采样频率不再是决定因素。
具体动作是:选一个已知会出现短时异常的时间窗口,同时用当前频率和临时提高后的频率各记录一次,比较两次记录中异常出现的次数和形态。如果提高频率后异常明显更容易被看到,说明异常时长与间隔接近,可以继续按需提频;如果两次结果差别不大,说明瓶颈在采样方式,应转向触发式或事件驱动采集。
这个对照的价值在于把“要不要提频”变成一个可验证的问题,而不是凭经验拍板。做完之后,下一步再决定是保留提频、改触发条件,还是调整采集链路,依据都来自这次对照的实际结果。