采样频率低并不等于短时异常一定漏掉。能否捕捉,取决于异常持续多久、你手里有哪些旁证,以及是否愿意用外部触发或人工抽查补足采样空档。缺少完整数据和权限时,仍可做两件事:先估算漏检窗口,再决定是加外部信号还是缩小监控对象。
选择依据不在工具本身,而在异常的形态。持续型异常,例如某条投放计划连续数小时消耗异常、某个落地页长时间打不开,低采样通常仍能命中,因为异常跨过了多个采样点。脉冲型异常,例如几秒内请求量骤增、短时间跳转异常、定时任务瞬间失败,低采样很容易只看到正常值。
区分方法可以先用现有数据做一次粗判:把同一指标的历史序列按采样点画出来,看异常是只在一个点上出现,还是连续两个以上点都偏离。只出现一次且幅度大的,按脉冲型处理;连续出现的,按持续型处理。这一步不需要新增权限,也不需要改工具配置。
如果异常只在一个采样点出现,不能直接断定它是短时脉冲,也可能是采集延迟、补数或统计口径变化造成的假象。此时应优先找旁证,而不是立刻调高采样频率。
当异常会持续存在时,提高采样频率往往不是最省成本的动作。更实际的做法是把监控范围收窄到最可能出问题的对象上,例如只盯住少数几个关键页面、几条核心计划或一类接口。
具体动作:列出最近出现过异常的对象,按影响面排序,只保留前几项纳入高频检查,其余仍用原频率。这样做的结果是,采样点集中到高风险对象上,单个对象被覆盖的密度提高,而整体请求量不必同步放大。下一步再根据这些对象的命中情况,决定是否继续缩小范围。
例外是对象数量本身很少、且每个对象都必须全量覆盖。这种情况下缩小范围等于放弃覆盖,应改为外部触发方案。
脉冲型异常靠提高轮询频率很难稳定命中,因为异常窗口可能短于采样间隔。更可行的思路是不再依赖定时采样,而是让异常本身触发记录。
可执行的最小动作包括:在关键链路上加一个轻量记录点,例如请求失败、页面状态变化或任务返回异常时写一条日志;再把这些日志按时间聚合,看是否能在采样空档里还原出异常时段。这个动作不要求完整数据权限,只要求能在关键位置留下痕迹。
结果如何影响下一步:如果外部触发能稳定记录到异常,说明采样空档已被旁证补上,不必再调高频率;如果触发点也记录不到,说明异常可能发生在更底层或更早的环节,需要继续向前定位,而不是继续加采样。
需要说明的是,外部触发记录到的次数与真实发生次数之间可能存在偏差,不能仅凭触发次数推断异常规模。
没有完整数据或权限时,仍可执行的最小动作是人工抽查加对照。选择两个时间段:一个是你怀疑出现异常的时间,一个是相邻的正常时间,分别查看现有可见指标。若两者差异明显,可把异常时段标记出来,再决定是否申请更高权限或调整采样。
这里要明确不能推出的结论:抽查到差异,不能证明异常一定发生在该时段;抽查没看到差异,也不能证明没有短时异常,因为采样点可能正好落在异常之外。抽查的价值在于缩小怀疑范围,而不是给出定论。
假设某工具每十分钟采样一次,某接口在两次采样之间出现了约四十秒的失败。按十分钟间隔,这次失败很可能不被记录。若在接口失败时写一条日志,日志会留下时间戳,从而暴露这段空档。这个例子只说明触发记录与定时采样的差别,不代表任何具体工具的实际行为。
把这三件事确认清楚后,再决定是否调整采样频率,通常比直接调高频率更有效,也更容易解释结果。