连载中 15/20

指标监控与告警:四大黄金指标

2026-08-29 · 1348 阅读 · 0 评论 · 0 赞

面板很全,但没人看

监控大盘做了两百张图,CPU、内存、连接数、GC 一应俱全。故障当晚没人知道先看哪张——大家更关心的是"用户还能不能用",而不是某台机器的 CPU。监控要从机器视角走向用户视角,这中间的桥,就是四大黄金指标。

四大黄金指标

Google SRE 给出的四件套,每个服务都要有:延迟——请求处理耗时,注意分位数(P99)比平均值诚实;流量——QPS 或业务吞吐,衡量系统压力;错误——失败请求率,5xx 与业务失败分开看;饱和度——资源余量,连接池占用、队列深度、线程池活跃度。四张图回答一个问题:用户有没有受影响,影响多大。

指标典型采集项异常信号
延迟P99 / P95 耗时P99 突涨且持续
流量QPS、订单速率流量骤降(可能上游问题)
错误5xx 率、业务失败率错误率突破阈值
饱和度连接池、队列深度资源接近上限

Prometheus:拉模型三行起步

Prometheus 定期从各服务的 /metrics 端点拉取指标,配合服务发现自动纳管新实例。业务服务先用 Micrometer 暴露框架自带指标,再逐步补业务指标(下单成功率、支付回调延迟)。常用 PromQL 两行就能覆盖核心告警场景:

# 服务 P99 延迟
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))

# 5xx 错误率
sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
  / sum(rate(http_requests_total[5m])) by (service)

告警的分级与三条纪律

告警不分级,等于没有告警:P0——核心链路不可用,电话叫醒;P1——指标异常但服务尚可,群里通知;P2——趋势劣化,日报跟进。三条纪律让告警保持可信:可行动——收到告警要有明确的下一步,否则删掉;有上下文——告警消息带上服务、指标现值、阈值、看板链接;聚合去抖——连续 N 个周期才触发,同一故障合并通知。狼来了三次之后,再真的狼也没人信了。

SLO:从机器活着到用户没受影响

在四大指标之上定义 SLO——比如"下单接口 99.9% 的请求在 500ms 内成功"。SLO 带来错误预算:一个月允许 43 分钟的额度,预算烧得快,就少发版多加固;预算充裕,可以更激进地演进——这让"要不要发版"从拍脑袋变成看数字。观测三件套(链路、日志、指标)至此凑齐,下一篇讲微服务绕不开的老话题:分布式事务在服务拆分后的落位。

☕
503

10 年全栈工程师 · 503咖啡馆主理人

#监控告警#四大黄金指标#Prometheus#SLO#错误预算

评论 (0)

热门推荐

连载中 11/22

主从搭建实操:从零配出一主两从

光讲原理不过瘾?手把手搭一主两从:my.cnf 六个参数、复制账号、GTID、CHANGE REPLICATION SOURCE TO、SHOW REPLICA STATUS 验收,附翻车排查清单。

#MySQL#主从复制#GTID#主从搭建#高可用
2026-05-07 · 10101 阅读 · 0 评论 · 0 赞
连载中 16/22

连接池:HikariCP 参数与连接风暴

连接池不是越大越好:8 核机器配 1000 连接反而更慢的数学原理,HikariCP 四个必调参数,maxLifetime 与 wait_timeout 的隐形陷阱。

#MySQL#连接池#HikariCP#maxLifetime#连接风暴
2026-05-10 · 9873 阅读 · 0 评论 · 0 赞
连载中 4/16

缓存穿透:恶意 ID 打穿 MySQL 的四道防线

请求的数据在缓存和数据库里都不存在时,缓存形同虚设。聊聊参数校验、空值缓存、布隆过滤器、限流熔断四道防线的原理与组合打法。

#Redis#缓存穿透#布隆过滤器#高可用
2026-05-16 · 9293 阅读 · 21 评论 · 287 赞