结论先说:采样频率低并不等于必然漏掉短时异常,关键在于异常是否留下可累积的痕迹。如果异常表现为持续数小时的状态偏移,用趋势累积加阈值告警通常够用;如果异常只持续几分钟且每次都被下一次采样覆盖,就必须换思路,靠事件触发或更高频的旁路记录来补。选择哪种做法,取决于你能接受的漏报代价和可用的记录通道,而不是单纯把频率调高。
第一种做法是提高采样频率。它成立的前提是:采集端和存储端都能承受更高写入量,且短时异常本身有被观测的价值,而不是噪声。代价是数据量成倍增长,查询变慢,告警更容易被抖动触发,最终可能把真正的问题淹没在误报里。
第二种做法是保持低频采样,但增加“事件触发”通道:只在状态跨过阈值、请求返回异常码、或某个计数在采样间隔内出现跳变时记录一次明细。它成立的前提是异常会触发某个可观测的边界条件。代价是如果异常是缓慢累积、始终不越过阈值,这条通道就不会被触发。
判断用哪种,可以问一个问题:这个短时异常如果漏掉,下一次采样时会不会还留下可见的痕迹?会留下,就选低频加累积;不会留下,就必须补事件触发或旁路记录。
假设某页面在几分钟内被大量抓取,随后恢复正常。如果只把采样频率从每十分钟一次提到每分钟一次,你确实更可能看到峰值,但也会看到大量正常波动。当告警阈值按高频数据重新设定时,原本能触发告警的短时峰值可能因为“在高频视角下不算异常”而被放过。这就是结论失效的反例:采样变密,不等于异常更容易被识别,反而可能因为基线被抬高而降低敏感度。
所以提高频率之前,先确认你比较的基线是否也跟着变了。基线不变、频率提高,才更可能捕捉到短时异常;基线随频率一起变,就要重新校准阈值。
假设你只能每十五分钟采样一次,但怀疑存在持续三到五分钟的异常。可以这样安排:
这个动作的结果会直接影响下一步:如果事件日志频繁触发但采样点差值平稳,说明阈值定得太低,应先调阈值而不是加频率;如果事件日志稀疏但采样差值出现台阶,说明异常确实留下了累积痕迹,可以继续用低频方案。
当异常本身是瞬时的、且不改变任何累计计数时,低频采样在原理上就无法捕捉。例如一次短暂的返回异常,如果它既不写入日志也不改变总量,采样间隔内发生又结束,任何低频方案都只能靠运气。这时唯一可靠的办法是让记录发生在异常发生的当下,而不是等下一次采样。具体用哪种触发机制,取决于你的采集端能提供什么,需要按实际工具核对。
先不要动采样频率。用一周时间,把现有采样数据里所有“相邻两点差值超过历史波动上限”的时刻列出来,再和事件日志对照。如果这些时刻大多能被事件日志覆盖,说明低频加触发已经够用;如果大量差值异常找不到对应事件,才考虑提高频率或增加旁路记录。这个动作的产出是一张对照表,它决定了你是调阈值、换通道,还是维持现状。