做 WMS integration monitoring alerting 这行十几年,我最怕的不是设备坏——电机烧了有备件,皮带断了看得见。最怕的是接口死得悄无声息。你这边分拣机跑得欢,对面系统的单子一个都没收到,等发现的时候,仓库里已经堆了半天的货。这件事说白了就是一句话:接口死的时候,第一个知道的人必须是系统,不是人。
接口有三种死法,死法不一样,监控也得不一样
先把原理掰开。WMS 对接这事,这就像两家仓库之间修了一条传送带,单子是货。你以为传送带要么转要么停,其实它有三种坏法。
第一种,超时。 对方系统没响应,连接卡在那儿不动。这就像打电话,对方一直"嘟——嘟——"没人接。好处理,设个超时阈值就行,比如 30 秒没回就判死。但坑在于:有些系统是"假死",连接没断,就是慢。2023 年我在一个 Fontana 的 3PL 仓做项目,ERP 那边接口平均响应 2 秒,某天突然变成 45 秒——没超时、没报错,单子照走,只是越走越慢。到下午两点,积压了 1800 多个出库单,分拣线全停了。教训:光监控"通没通"不够,还得监控"快不快"。
第二种,丢单。 发出去没收到,或者收到了没确认,双方各说各的。这就像寄快递,你显示"已签收",对方说"没收到"。最阴险的是部分丢单:1000 个单子过去 997 个,丢 3 个。这种故障不会触发任何告警,因为接口本身是通的。去年黑五,一个 Inland Empire 的电商仓,订单接口每小时丢 0.5% 的单,连续丢了三天才发现——客服先发现的,客户投诉"下单三天没发货"。三天,丢了将近 400 单,直接损失加上赔的运费,财务那边算出来小十万美金。
第三种,脏数据。 接口通了,单子也到了,但内容是错的。数量字段多了个小数点,SKU 对错了库位,日期格式 2026/10/15 和 10-15-2026 混着来。这就像货送到了,箱子里装的却是别人的货。这种故障监控最难,因为它在业务层,不在技术层。你得在数据落地之后再验一遍:数量对不对、必填字段全不全、枚举值在不在字典里。
三种死法对应三层监控:连通性(通没通)→ 性能(快不快)→ 数据质量(对不对)。很多公司的监控只做了第一层,后面两层裸奔,还觉得自己"有监控了"。这是典型的伪需求——监控面板上 40 个图表,接口挂了照样没人知道。
四个指标,够了,别再加了
监控指标这事,我见过太多团队一上来列 30 个指标,最后一个都不看。做设备的时候我就这脾气:传感器装多了,操作工反而不知道看哪个。接口监控,四个指标管够:
1. 成功率。 每分钟成功请求 / 总请求。告警线我建议设 99.5%,持续 5 分钟跌破就告警。别设 100%,设了你就等着被半夜叫醒——网络抖一下、对方系统 GC 停顿一下,都会掉一两个点。告警阈值这东西,这就像烟雾报警器:灵敏度调太高,炒个菜就响,响多了你就把电池扣了。
2. 延迟 P99。 注意,是 P99,不是平均值。平均值这东西最会骗人:99 个请求 1 秒,1 个请求 100 秒,平均值 2 秒,看着挺好,但那个 100 秒的请求可能就是你最重要的那个大客户的单。P99 的意思是:99% 的请求都比这个快。用 P99 设告警线,比如 P99 超过 10 秒持续 3 分钟,告警。
3. 队列积压。 有重试队列、死信队列的,看队列深度。正常应该是 0 或者接近 0,突然涨到几百,就是上游或下游出事了。这个指标的好处是提前量:接口还没彻底挂,队列先涨了,你能提前半小时发现。
4. 重试率。 重试超过 5% 就要警惕。重试本身是保护机制,但重试率飙升说明对端已经不健康了。更狠的是重试雪崩:对端慢了,你这边疯狂重试,重试把对端彻底打死。我亲眼见过一次,对端接口响应变慢,客户端 3 秒超时+无限重试,5 分钟之内把对端连接池打满,两边一起挂。重试必须设上限+退避(backoff),这是铁律。

四个指标,每个配一个"正常值"和一个"告警线",写进一张表贴墙上。新人来了看一眼就知道盯什么。别搞那些花里胡哨的大屏,大屏是给领导参观的,告警是给值班用的。
告警分级:什么事打电话,什么事发邮件
告警最大的坑不是没人告警,是告警太多,没人信了。我管过一个项目,监控配了 200 多条规则,一天发 300 多封告警邮件。三个月后,运维同学给告警邮箱设了自动归档——等于没有监控。这叫告警疲劳,监控领域的老毛病。
我的分级很简单,三级:
| 级别 | 触发条件 | 通知方式 | 响应要求 |
|---|---|---|---|
| P1 致命 | 成功率跌破 95% 持续 3 分钟,或核心接口完全不通 | 电话+短信,直接打值班手机 | 15 分钟内必须有人认领,1 小时内恢复或降级 |
| P2 严重 | 成功率 95%~99.5%,或 P99 延迟超标,或队列积压超 500 | 短信/企业微信群 @ 值班人 | 30 分钟内认领,4 小时内处理 |
| P3 预警 | 重试率超 5%,或单指标轻微抖动 | 邮件,抄送团队 | 当天工作时间处理 |
关键规则就两条:P1 必须能叫醒人(电话,不是邮件,不是群消息);P3 绝不打扰人(进了邮箱就行)。中间那档 P2,看你们团队的作息定。还有一条铁律:任何一条告警规则上线前,先问自己——"这条告警响了,我知道该干什么吗?"不知道,就别配。配了也白配,响了也是干瞪眼。
另外,告警一定要有升级机制:P1 发出 15 分钟没人认领,自动打给 backup,再 15 分钟没人理,打给技术负责人。别指望值班的人永远在线,手机没电、开会静音,都是常事。
接口挂了,war room 怎么开
告警响了,下一步是什么?很多团队的答案是"拉个群,大家一起看"。然后群里 20 个人,每个人发一句"我这边看着正常",半小时过去了,问题还在。这不叫 war room,这叫聊天室。
我这边的流程是死的,四步:
第一步,认领。 P1 告警发出,值班工程师 15 分钟内在群里回"收到,我在看"。没人回,自动升级打电话。war room 里只能有一个 commander,多头指挥必乱。
第二步,止血优先,定位第二。 接口挂了,先想办法让业务不停:切备用通道、降级为人工录单、暂停上游推送——先让仓库能干活,再慢慢查 root cause。我见过最蠢的 war room,花了两小时定位到是对方证书过期,定位过程仓库停了两小时。其实 10 分钟就能先切到手工模式,定位可以慢慢来。先恢复业务,再找病因,这个顺序不能反。
第三种死法(脏数据)要单独说。 脏数据的 war room 不一样:先冻结,别急着重发。数据错了再重发一遍,错上加错。先把有问题的单子圈出来,人工核对一批,确认清洗逻辑没问题,再批量重跑。2024 年初有个仓,SKU 映射错了,重发了三遍,越重发库存越乱,最后花了两天人工盘点才捋顺。
第四步,复盘。 故障恢复后 48 小时内,写个一页纸的复盘:怎么发现的(监控还是人)、止血花了多久、根因是什么、加一条什么监控能下次更早发现。复盘不追责,追责下次就没人敢报故障了。
这笔账得算:监控到底值多少钱
最后算笔账,这是我的老习惯。很多人觉得监控是成本中心,能省则省。我给你算另一笔账。
假设你的仓每天走 8000 单,平均每单毛利 3 美金。接口挂 4 小时,按 1/6 天算,少走约 1300 单,直接毛利损失约 4000 美金。这还没算:客户投诉的退款、加急补发的运费、运营团队干等的工时。一年出两次这种故障,就是小一万美金打水漂。
一套像样的监控呢?云上的监控服务,按指标量收费,一个中等规模的对接,一个月几十到一两百美金;告警电话短信,一年几百美金;值班的人力,本来就是你团队的人,顺手的事。一年总投入,撑死两三千美金。
账很清楚:花两三千,防一万多的损失,还不算品牌和客户信任。 这钱花得值不值,看这一个数就行——你上次接口故障,到底赔了多少钱。赔过的都知道,没赔过的,迟早会赔。
别等下一次凌晨两点的电话了。监控配好,告警分级,war room 流程贴墙上。下次接口再死,第一个知道的是系统,第二个是值班的人——而不是早上六点被客户骂醒的你。
作者:大刘|自动化设备工程师,前集成商技术负责人






