不只是CPU和内存:云上业务指标监控与自定义告警实战
本内容发表于:2026-04-15 10:32:45
浏览量
1028

不只是CPU和内存:云上业务指标监控与自定义告警实战

1.jpg

去年双11,凌晨两点,一个电商客户的监控大屏一片绿——CPU正常、内存正常、磁盘正常。但客服电话被打爆了:用户说付不了款。

技术团队懵了:所有技术指标都正常啊,怎么可能?

查了半小时才发现,支付网关的API返回了一个新的错误码,代码里没处理,直接把支付请求吞了。技术监控没报错,因为HTTP状态码还是200。

这是技术监控的盲区:技术指标正常,业务可能已经挂了。

今天聊聊业务指标监控。不是那种“监控很重要”的废话,而是帮你理清楚:哪些业务指标值得看?怎么采集?怎么设告警?怎么在用户骂人之前发现问题?

01 技术监控只能看到“机器”,看不到“生意”

CPU、内存、磁盘、网络——这些指标告诉你机器跑得怎么样。但它们不告诉你生意做得怎么样。

  • CPU正常,但用户登录不上。技术监控看不到。

  • 内存正常,但支付成功率从99%掉到50%。技术监控看不到。

  • 磁盘正常,但购物车加购率暴跌。技术监控看不到。

反常识观点:技术指标正常,不代表业务正常。 甚至有时候,业务已经挂了,技术指标还是绿的。

那家电商就是这样。他们的技术监控只盯着基础设施,没人看业务指标。支付网关改了接口,加了个新错误码,代码没处理,用户支付失败,但HTTP状态码是200。监控系统认为“一切正常”。

业务指标是生意的温度计,技术指标是机器的温度计。两个都要看。

02 哪些业务指标值得看?

业务指标分三类,按重要性排序。

第一类:收入型指标

直接跟钱挂钩。每天GMV、每小时的订单金额、客单价。

这类指标最敏感。GMV突然掉了一半,不用等用户投诉,你就能知道出事了。

第二类:转化型指标

反映用户行为漏斗。登录成功率、搜索点击率、加购率、下单成功率、支付成功率。

转化率突然下降,通常是代码bug、第三方接口故障、或者页面挂了。比收入指标更早发现问题——因为用户还没到付钱那步就卡住了。

第三类:流量型指标

反映用户活跃度。PV、UV、QPS、在线人数。

流量突然暴涨,可能是被攻击,也可能是有热点事件。流量突然暴跌,可能是DNS解析挂了,或者CDN出问题了。

那家电商后来把“支付成功率”和“下单成功率”加到了监控大屏上。双11当天,这两个数字一抖,他们就知道出事了,不等客服反馈。

03 怎么采集业务指标?

业务指标不在系统监控里,得自己埋。

方法一:代码埋点

最简单直接。在业务代码的关键位置,加一行统计代码。

支付成功后,计数器+1;支付失败,另一个计数器+1。然后暴露给监控系统。

方法二:日志解析

如果不想改代码,可以从日志里捞。支付日志、下单日志、登录日志,写个程序定期统计。

缺点是实时性差一点,日志量大时解析成本高。

方法三:中间件拦截

在API网关、消息队列这类中间件里,统计请求和响应。适合统一收集多个服务的指标。

工具选型:

  • Prometheus + Grafana:开源标配,Counter、Gauge、Histogram三种指标类型,够用了。

  • 云原生:CloudWatch自定义指标、ARMS业务监控,和云服务集成好,但按指标量收费。

那家电商用的Prometheus,支付服务暴露了一个payment_success_total计数器,每成功一笔+1。Grafana上画了个图,按分钟聚合,一目了然。

04 告警:别让数字变成噪音

指标采集了,大屏画了,下一步是告警。但告警不是越多越好。

告警设计的三个原则:

原则一:只对“需要人马上处理”的情况告警。

凌晨三点收到“支付成功率低于95%”的告警,你得爬起来处理。收到“PV比昨天低5%”,可能只是正常波动,不用半夜折腾。

原则二:用动态阈值,别用死值。

“支付成功率低于99%”告警,平时可能天天报,因为凌晨维护时成功率本来就会低。改成“环比前10分钟下降超过5%”再告警,更精准。

原则三:组合条件,减少误报。

“GMV下降”同时“错误日志增加”,大概率真有问题。“GMV下降”但其他指标都正常,可能是大促结束后的自然回落。

那家电商后来设了这么几条告警:

  • 支付成功率环比5分钟下降超过10%,P0级,电话告警。

  • 下单成功率低于95%,P1级,钉钉告警。

  • 每分钟订单数低于历史同期的50%,P1级。

效果:有一次支付网关升级,成功率从99%掉到80%,告警3分钟内触发,技术团队在用户大规模投诉前就定位了问题。

05 从技术监控到业务监控:一个真实案例

去年一个SaaS客户,他们的技术监控很完善,CPU、内存、延迟、错误率,全都覆盖。但老板还是不满意,因为“看监控不知道生意好不好”。

我们帮他们做了几件事:

第一,确定三个核心业务指标:每日活跃租户数、API调用成功率、订阅付费转化率。

第二,代码埋点。在用户登录、API调用、支付回调处加埋点,暴露Prometheus指标。

第三,Grafana大屏。不再只看技术指标,首页放业务指标。老板每天早上来,第一眼看的是“昨日活跃租户”。

第四,业务告警。活跃租户数连续30分钟低于正常水平,告警。API成功率低于99.5%,告警。

三个月后,他们靠业务监控发现了一个问题:周末的API调用成功率只有98%,平时是99.9%。查出来是某个定时任务周末跑批,把数据库连接池占满了。改完配置,成功率恢复正常。老板说:“以前靠用户投诉才知道问题,现在监控告诉我就知道了。”

写在最后

技术监控告诉你机器跑得怎么样,业务监控告诉你生意做得怎么样。两个都要,缺一不可。

别等技术指标都绿了,才发现用户付不了款。把支付成功率、下单成功率、登录成功率这些数字,放到你的监控大屏上,放到你的告警规则里。

那家电商的运维负责人后来总结了一句话:“以前觉得监控是给技术看的,现在觉得监控是给生意看的。机器没坏,但生意坏了,那才是真坏了。”

你的监控大屏上,有生意的温度计吗?