采样频率低时,短时异常往往会被平均掉:一次持续二十分钟的抓取失败、一次午间的响应骤升,在每日一采的报表里可能只表现为一个普通点。要捕捉它,不能只靠调高频率,而要先判断它属于哪类异常,再用有针对性的补采或旁证去验证。
看到日粒度曲线平稳,有两种可能:一是异常确实发生但被采样间隔跨过;二是这段时间本来就没有异常,平稳是真实结果。两者在报表上长得一样,但后续动作完全不同。前者要改采样方式,后者改采样方式只会增加噪声和成本。
区分它们的关键证据是时间分布特征。真异常通常有明确的起止边界,且与某个外部事件相关,例如发布、改版、投放开始、第三方接口抖动。如果每次异常都落在整点或采样点附近,更像是采样节奏造成的假象;如果异常集中出现在某类操作之后,即使没被采到,也值得补采确认。
把采样从每天一次改成每小时一次,数据量涨二十四倍,但短时异常可能只持续几分钟,仍然会漏。更实际的做法是保留低频基线,另设触发条件:当某个指标越过阈值、或某个已知事件发生时,临时对该对象做一次加密采样。
假设某栏目平时响应时间在两百毫秒上下,某天下午出现一次持续十五分钟的升高。若日采只记录当天均值,这次波动会被稀释。可以这样处理:
这个动作的结果决定下一步:如果补采复现了异常且与某次变更时间吻合,就该把该变更纳入常规监控触发条件;如果补采无法复现,说明可能是单次网络抖动,不必为此长期提高频率。
不是所有指标都值得为短时异常付出额外采集成本。判断标准是异常是否可逆、是否影响后续决策。
把加密资源集中在前一类,才能在成本可控的前提下提高对短时异常的捕捉率。
遇到疑似被采样漏掉的异常时,按以下顺序走,能避免盲目调频率:
这样做的价值在于:每一次调整都有证据支撑,而不是把采样频率当成万能开关。短时异常真正难的不是采不到,而是采到之后分不清它是系统问题还是采样问题。
即使频率不变,只要记录足够细,也能事后还原短时异常。至少要保留采集时间戳、采集对象、指标值、采集方式四项。缺少时间戳,就无法判断异常落在哪个区间;缺少采集方式,就无法区分是接口返回还是页面渲染结果。
另外,把已知的变更、发布、外部依赖维护记录与采集数据放在同一时间轴上。很多短时异常之所以看起来无法解释,不是因为没采到,而是因为采集记录和事件记录分处两个系统,无法对齐。具体工具是否提供这类对齐能力,需要按实际版本核对,不能默认存在。
当采样频率无法再提高时,捕捉短时异常的出路是缩小观察对象、增加触发条件、保留可对齐的时间戳。频率只是其中一个变量,不是唯一变量。