结论是:当异常只落在高价值客户身上时,全站总量指标通常看不出问题,你需要先把告警按客户价值分层,再对高价值分组单独设阈值。这个结论有前提——你至少要有一个可用的客户标识能带进检测日志;如果所有请求在检测软件里都是匿名的,分层就无从谈起,只能先补标识,再谈阈值。
假设一个站点日均十万次请求,其中高价值客户只占两千次。如果检测软件对这些客户的误拦截率从千分之一升到百分之一,多出来的拦截量大约只有二十次上下,放进十万次的总量里几乎看不出波动。总量指标的分母太大,异常集中在小子集时就被平均掉了。
更麻烦的是,这类异常往往先被解释成别的原因:缓存命中率变化、某个地区网络抖动、上游限流。它们在总量层面都成立,却解释不了为什么只有特定客户受影响。要区分这些解释,靠的不是更大的总量报表,而是能把客户身份和检测事件对齐的证据链。
分层的前提是检测软件能拿到稳定的客户标识。常见做法是让请求带上账号ID、会话标识或专属网关标记,再在检测日志里保留该字段。如果当前日志只有IP和URL,你面对的是同一个IP背后多个客户共用出口的情况,分层会失真。
一个可核对的检查动作:取最近一段时间的检测日志,统计带客户标识的请求占比。如果占比明显低于高价值客户的实际请求量,说明标识在链路中被丢掉,此时先修埋点,不要急着调阈值,否则新阈值作用在错误的样本上。
分层之后,给高价值客户分组设更宽松或更严格的判定条件,取决于异常是误拦还是漏放。同时保留全站总量指标作为对照,而不是替换它。两者一起看,才能判断问题是局部还是全局。
这样做的结果是:下一次告警出现时,你能先回答“影响面在高价值分组内还是外”,再决定是否升级处理,而不是等总量指标终于动了才反应。
分层并非总是有效。如果高价值客户和普通客户共用同一批出口IP、同一套会话标识,或者检测软件在聚合阶段就把客户字段抹掉了,那么按价值分组得到的仍是混合样本,阈值调整只会把误拦从一个群体挪到另一个群体。
判断是否落入这个反例,可以看一个信号:调整高价值分组阈值后,普通分组的指标同步变化。若两组始终同向变动,说明分层没有真正切开流量,此时应回头检查标识和聚合逻辑,而不是继续微调阈值。
假设某天高价值客户反馈访问受阻,而总量指标正常。可以按以下顺序核对,每一步的结果决定下一步:
这套步骤的价值在于把“总量正常”从一个容易误导的结论,变成一次分层核对的起点,让下一步动作有据可依。