去年黑五前一周,我去一家 Rialto 的电商仓做巡检,他们的 IT 主管跟我炫耀:今年新接的快递面单接口,QPS 能扛 2000,文档写得漂漂亮亮。我问了他一句话,他当场愣住:"这接口要是凌晨两点挂了,第一个知道的人是谁?"

他想了半天说:"应该是……早上六点开工的打单员吧。"

你看,接口健不健壮是技术问题,挂了谁先知道是管理问题。绝大多数仓库的接口监控,约等于没有——不是没配,而是配了等于白配:阈值设得离谱,告警全发到一个没人看的邮箱,或者半夜三点一条短信把全组人都吵醒,吵三次大家就把告警群静音了。

我这二十年,见过接口挂掉的死法不下二十种。今天把这套监控告警的配置清单摊开讲,照着配,至少能保证:接口挂了,第一个知道的是你的人,而不是你的客户。

先说结论:监控五个信号,别的都是锦上添花

接口监控别一上来就搞什么全链路可观测大屏。仓库这个场景,盯住五个信号就够了,少一个都可能让你在旺季翻车。

第一,心跳。 接口本身活没活着。最简单也最容易被忽略:每 5 分钟调一次对方的健康检查端点,或者发一个探测报文。快递面单、地址校验、关税计算这类第三方接口,必须有独立心跳。2023 年一家 Ontario 的 3PL 仓,快递商接口证书过期,TLS 握手直接失败,他们的系统没有任何心跳探测,整整 4 个小时打不出面单,积压 9000 多单。心跳探测的成本几乎为零,不配就是纯粹的懒。

第二,错误率。 5 分钟窗口内失败请求占比。注意是"占比"不是"绝对数"——大促期间请求量翻十倍,绝对失败数涨是正常的,占比涨才是真出事。

第三,延迟。 P99 延迟,不是平均延迟。平均延迟 200 毫秒听起来很美,P99 到了 8 秒,意味着 1% 的请求卡死,而这 1% 往往集中在打单高峰的那几分钟,直接把流水线堵住。

第四,积压量。 消息队列、待处理文件数、重试池深度。接口"没挂但变慢"是最阴险的一种死法:表面一切正常,队列越积越深,等你发现时已经积了 3 万条,追都追不回来。

第五,对账差异。 定时对账:我方发出的单量 vs 对方接收的单量。快递面单、EDI 850/856 报文、库存同步,每天至少对一次账。对账是最后一道防线,前面四个信号都漏掉的,这一个能兜底。

阈值怎么定:分三级,别一刀切

阈值最大的坑是"一刀切":所有接口同一个阈值,要么天天狼来了,要么真出事了没人理。我的做法是按业务影响分三级:

P1 - 电话告警,5 分钟内必须有人响应。 触发条件:核心接口(打单、出库确认、库存同步)心跳连续 2 次失败;错误率 5 分钟窗口超过 5%;P99 延迟连续 10 分钟超过 10 秒。P1 直接打值班人电话,不是发短信,不是发邮件。电话没人接,5 分钟后自动转打第二顺位。

P2 - 短信加群消息,30 分钟内响应。 触发条件:非核心接口(地址校验、物流轨迹回传)错误率超过 3%;消息队列积压超过 5000 条且持续 15 分钟还在涨;重试池里同一批任务失败超过 50 次。P2 发到值班群,值班人回复"收到"即算认领。

P3 - 邮件加日报,白天处理。 触发条件:对账差异小于 0.5%;某个接口 P99 延迟缓慢爬升但没过线;证书还有 30 天过期。这类告警进日报,IT 早会过一遍就行。

这里有个关键细节:阈值必须按接口单独调,大促前两周冻结阈值变更。 我见过最离谱的是一家仓把所有接口的错误率阈值都设成 1%,结果大促期间地址校验接口因为用户乱填地址,错误率常年 2%~3%,告警响了一整天没人理——然后当天晚上真正的 P1 故障也被当成狼来了忽略了。阈值这东西,宁可大促前按历史 P95 数据逐个校准一次,也别图省事一刀切。

深夜仓库监控室,工程师盯着告警屏幕

告警发给谁:值班表比技术更重要

技术配好了,告警发给一群已经静音了的人,等于零。我坚持三个规矩:

第一,必须有值班表,而且是"一个人"不是"一组人"。 告警发到群里,默认每个人都觉得别人会处理。P1 告警必须点对点:第一顺位是当晚值班工程师,5 分钟无响应自动转第二顺位(IT 主管),再 5 分钟无响应转第三顺位(运营总监,有权做业务降级决策,比如切备用快递商)。值班表每周轮换,提前一周发出,节假日值班给调休——不给调休的值班表,执行不了一个月。

第二,告警渠道按紧急程度分开。 P1 走电话,P2 走短信加企业微信/钉钉群,P3 走邮件。千万别把 P3 的日报也塞进同一个群,信息一多,人就学会了忽略一切。我看过一个 200 多人的大群,一天 300 条告警,P1 混在里面根本没人看见。

第三,每月复盘一次"狼来了"。 把上个月所有的告警拉出来:哪些是真故障,哪些是误报,哪些响了没人理。误报率超过 30% 的阈值必须调,响了没人理的要问责。告警系统和人一样,不复盘就会慢慢烂掉。

另外说个血泪经验:大促前一定要做一次"断网演习"。 找个周末凌晨,把测试环境的快递接口掐掉,看告警几分钟响、值班人几分钟响应、降级预案几分钟生效。纸上谈兵的预案,第一次实战一定掉链子。我经手的仓里,做过演习的和没做过的,大促当晚的表现完全是两个世界。

这套配置值多少钱?我帮你算笔账

配这套东西要花多少钱?说实话,不多。心跳探测加错误率统计,用现成的 APM 工具(Datadog、New Relic,或者开源的 Prometheus 加 Alertmanager)一周能搭起来。人力成本主要是值班补贴:按加州这边行情,工作日夜间值班一天 50~80 美金,周末 100~150 美金,一个月轮下来也就两三千美金。

不配的代价呢?算一笔最常见的账:快递面单接口凌晨挂了,早上 6 点才发现,积压 8000 单。每单延迟一天,快递时效承诺违约、客服投诉、平台罚款(亚马逊 OTDR 掉 0.5 个点,Buy Box 权重直接受影响),加上临时加班追单的人工,一次事故 2 万~5 万美金的损失是保守估计。一年只要出一次,这套监控的钱就回来了十倍。

所以我的 verdict 很直接:接口监控不是 IT 的选修课,是仓库运营的必修课。 你可以没有大屏,没有花里胡哨的可观测平台,但五个信号、三级阈值、一张值班表,这三样今晚就该有。

明天上班第一件事:问问你的 IT,凌晨两点接口挂了,第一个知道的人是谁。如果他答不上来,你知道该干什么了。