在日常运维和监控工作中,你是否也经历过这样的“时刻”:
凌晨 3 点,手机疯狂震动:“入服人数低于阈值1000”;
放宽阈值后,“真异常”又悄然溜走,业务受损无人察觉。
传统监控系统普遍采用固定阈值来判定告警,但实际业务指标往往具有明显的时间节律性(昼夜波动)、周期性(周末波动)、趋势性(用户增长/下滑)。
一个统一的“阈值”,难以胜任全天候、全业务场景的精确判断:
我们不是缺少“阈值”,而是缺少一个聪明的阈值系统,能理解业务的节律,随着时间、场景动态调整。
动态阈值的理想形态是:“预测当前时刻的正常值范围”,只在超出这个范围时发出告警。
这正是 Facebook 开源工具 ——Prophet的强项。
Facebook Prophet 是一个面向业务用户设计的时间序列建模工具,广泛应用于流量预测、营收预测、电商转化、客服负载等场景。
| |
| |
| |
| |
| 默认输出 yhat_lower/yhat/yhat_upper 三值 |
| |
某业务系统每天采集 24 个数据点,分别覆盖早晨、白天和夜晚等典型时段。我们以 6 月 1 日至 6 月 3 日为时间范围,构造了符合业务节奏的历史数据:
早上时段(6–10 点):采样值稳定在约 30 左右;
白天时段(10–18 点):值集中在 40 左右;
接下来,我们使用 Facebook Prophet 模型对 6 月 4 日的 前3 个小时进行趋势预测,模型自动学习了历史中的周期性波动,并给出了每个时间点的预测值及置信区间。(yhat_lower:置信区间下限;yhat_upper:置信区间上限)
我们人为地将其中一个采样点设置为异常值 100,用于模拟业务告警场景。预测结果显示:
Prophet 给出的该时段置信区间约为 [20.2 ~ 45.11];
1.数据采集器:从时序数据库中提取目标指标(如过去72小时入服人数,每分钟充值趋势等)。
告警触发建模并生成 yhat/yhat_lower/yhat_upper;
项目上线后,我们在某游戏业务上对比了 Prophet 动态阈值的告警表现:降噪率在24%左右,而且时间大部分集中在晚上,效果明显
从传统“静态阈值”迈向“动态智能判断”,不只是算法升级,更是监控系统智能化的一次跃迁。
借助 Prophet,我们可以让告警系统理解时间、趋势、节律、周期,摆脱“人肉阈值”的时代。