9 月上监控,客户问要不要做一块大屏,把能采的都采上。我们没干,先只接了 5 个数。
为什么是 5 个
指标多了,等于没有。真出事的时候,人只会看那几个能立刻判断「要不要起来」的:
- 接口 P95 响应时间。不看平均,平均会把长尾盖住。
- 5xx 比率。按分钟算,超过 1% 才提示。
- MySQL 连接数。之前被 max_connections 顶满过,这个数最直观。
- Redis 命中率。掉到 80% 以下就得看是不是缓存又穿透了。
- 消息队列长度。涨起来不降,说明消费者卡住了。
Prometheus 每 15 秒抓一次,Grafana 就一屏,5 个面板,横着排。每个面板右上角写一行小字:超过多少算异常、先找谁。不写这行,值摆在那儿也没人敢动。
1. 告警只发一个群
第一版按指标分了 3 个群,结果半夜响了三条,其实都是同一个数据库慢引起的。改成全部进一个群,一条消息里带指标名和当前值,人看一眼就知道是不是同一件事。
2. 阈值调了两轮
5xx 一开始设 0.5%,上线头两天报了 7 次,多数是单个用户刷出来的零星错误。改到 1% 加「持续 2 分钟」才报,安静了。阈值不是拍的,是看了一周真实曲线之后定的。
3. 别让监控自己把库拖慢
有个 exporter 默认每 5 秒跑一次 SHOW GLOBAL STATUS,那台 MySQL 本来就吃紧,加上之后更慢。改成 15 秒,并且单独用一个只读账号。
4. 第 6 个指标是加出来的
跑了一个月,才补了「磁盘剩余」。起因是备份文件把一块盘写满了,前面 5 个数全正常,页面却开始传不了图。补完之后顺手给备份目录设了保留 7 天的清理。
现在
一屏还是那 5 个加 1 个,没再往上堆。值班表上多了一行:先看 Grafana 那一屏,再看日志。
有回新人问,怎么不做成那种转来转去的大屏。我说等哪天出事时你第一个想看的是它,再说。

