监控指标有哪些?,监控指标怎么设置最有效
- 物理机
- 2026-08-22
- 4
监控指标不是把能看到的数字全堆在面板上,而是用一套可执行的标准去回答“系统现在到底行不行”,核心围绕五个维度:可用性、性能、容量、准确性、成本。把这五件事盯住,监控才真正变成了决策工具。
很多团队对监控指标的理解停留在“多采集、多告警、多画图”上,结果就是面板几十个、告警几百条,一到大促全在群里发“正常吗”,问题不出在工具,出在指标设计本身,我用一套比较接地气的框架拆开讲。
监控指标怎么写:抓住五个维度的骨架逻辑
写监控指标前先想一个问题:这个指标是给谁看的、用来下什么判断,给研发看接口延迟,给运维看CPU余量,给老板看订单成功率,三者的精度、粒度、表达方式完全不同。
业内专家指出,健康监控体系的指标设计遵循一套基础逻辑:每个指标都对应一个明确的“业务后果”,比如某个接口的P99延迟从200毫秒涨到800毫秒,对应的后果就是用户可能流失、订单可能超时,没有后果的指标不值得采集。
用本质指标代替表象指标
这是最常见的坑,CPU使用率80%不代表有问题,要看的是CPU饱和度——排队线程数量、run queue长度、等待IO的进程数,类似地,磁盘使用率90%不代表要报警,要看磁盘剩余量能支撑多久,按历史增长速率推算,比如还有72小时可写,这个指标才是能指导动作的。
写清采集周期和聚合方式
一个指标必须写明是取平均值还是最大值,还是百分位数,相似的错误在于把平均值当唯一参考,一个接口平均延迟200毫秒,可能背后是99%的请求只要50毫秒,1%的慢请求拖到了5秒,平均值会掩盖长尾问题,所以多数场景直接用P95、P99,并据此设定告警阈值。
明确分母和分子
成功率怎么算?分子是成功请求数,分母是总请求数吗?如果还没等到服务端响应客户端就超时了,算不算失败?如果健康检查请求也算在分母里呢?写指标时要把这几个边界定义清楚,否则指标一波动,排查半天发现是口径问题。
监控指标有哪些:从基础设施到业务价值的四个层级
很多新手面对一堆监控项会发蒙,不知道从哪下手,其实就四层,每一层各有侧重,逐一补全、各司其职就好。
- 基础设施层:CPU、内存、磁盘IO、网络带宽、TCP连接数,后端监控的基础感知,只能反映“资源够不够”,不能反映“服务好不好”。
- 应用性能层:接口响应时间、吞吐量(QPS/TPS)、错误率、线程池活跃度、依赖组件的延迟和错误,这一层才是业务后端质量的直接反馈。
- 中间件与数据层:缓存命中率、消息队列积压数、数据库慢查询数量、连接池占用率,这个层面的问题往往会向上传递到应用层指标,但只盯着应用层会发现定位成本很高。
- 业务结果层:下单成功率、支付转化率、退货率、页面UV,等等,这层指标经常由数据团队另做一套,但监控体系里必须接入,用于判断“技术问题是否影响了流量”。
黄金四指标和RED方法论
行业共识认为,单一类型指标很难构成完整的监控体系,目前运维监控领域常用的是谷歌的黄金四指标:延迟、流量、错误、饱和度,延迟看体验,流量看压力,错误看质量,饱和度看容量。

如果是微服务架构,更适合用RED风格来简化:Rate(请求速率)、Errors(错误数)、Duration(耗时分布),对于生产消费链路,则要增加Lag(消费积压量)指标,来量化堆积风险,这个指标比CPU使用率更能表达消费者是否健康。
指标与告警的关系要简洁
设计完指标之后,还要想清楚哪些指标需要立刻告警,哪些只需要纳入日报趋势观察,指标数量过多只会分散注意力,一个有参考价值的做法是:告警规则的条数控制在运维人员能手动维护的范围内,凡是告警都需要沉淀出对应的处理预案。
监控指标怎么设计得有效:从十几个面板精简到核心几个
中间件类、数据库类、业务类指标,其实不需要一拥而上,监控指标设计真正难的不是“加法”,而是“减法”,给一个相对好上手的简化流程:
- 第一步,列出系统对外提供的核心接口,每个接口落在黄金四指标上。
- 第二步,给每个指标确定一个可导致用户可见影响的阈值基线,比如一个查询接口P99超过800毫秒,影响了页面交互体验,则在此设报警。
- 第三步,给每个依赖的第三方服务分别单独建立同步状态指标,逐一下沉到基础设施层。
- 第四步,把告警按P0/P1/P2分优先级,P0级别的指标永远保持在个位数,高优先级下如果告警太多说明阈值设窄了,要认真复盘。
经过这样的筛选,一个中等规模的微服务系统,真正需要人盯的指标大概控制在40到60个之间,对应的聚合面板也相应收敛,思路是把“告警疲劳”压缩到最低,保证一旦收到通知就说明确实存在问题。
实践中的技巧:指标接入后先观察两周的基线波动,再根据真实的日波动幅度将阈值设定在“超过基线30%”或“连续三个周期超限”的位置,尽量避免用一个拍脑袋固定的绝对值。
用SLO来锚定指标好坏
SLO是设定目标可用性,API成功率99.9%”,实现这个目标的路径就是由指标近实时驱动,当某个核心指标的持续异常时间累计到一定量时,触发分级的降级动作或人工介入。

SLO的好处是把“监控指标是否健康”从技术问题翻译成业务能理解的语言,业务方不用听懂“错误率上升0.5%”,只需要知道“本月剩余的不可用预算还剩多少”。
监控指标和日志的区别:各自解决什么场景问题
这个问题是团队在搭建监控时经常疑惑对比的两个方向,两者都能发现问题,但用法完全不同:监控指标回答“现在是否出问题了”,日志回答“为什么出问题”。
监控指标是一种数值型的时序数据,适合做趋势分析、阈值告警和容量规划,它本身不包含上下文细节,只知道接口失败了,但不知道是哪台机器、哪次请求、哪个参数导致的,日志则相反,是离散的、带详细上下文的事件记录,适合做深度排查链路追踪、异常栈还原和业务单据校验。
在实践的取舍上,通常的做法是:核心请求落指标,用于实时告警面板和自动伸缩决策;同时按一定比例采集全链路日志,用于出问题后基于trace ID关联排查,两者配合,一个管广度和异常响应速度,另一个管精度。
所以把它们混为一谈是效率低下的:在日志里搜错误码做告警会非常非常慢,在指标里找底层根因又缺乏资料,真正成熟的团队是“Logging、Metrics、Tracing”三套工具分别部署,用同一条规则的关联ID串起来。
监控指标价格贵吗:按量计费下怎么节省成本
很多从开源自建迁移到云服务的团队,第一个问题是监控系统的费用组成和开销规模,这里用市面上几类常见商业化方案的逻辑做一个简单对比,方便预算规划:

| 方案类型 | 典型费用构成 | 适合规模 | 成本特点 |
|---|---|---|---|
| 开源自建(Prometheus + Grafana) | 服务器成本 + 存储成本 + 人工维护成本 | 规模可控的私有化环境 | 初始成本低,量级增加时的存储和人力成本上升明显 |
| 云厂商托管监控服务 | 按数据点数量、存储时长、告警数量计费 | 业务波动较大、规模上云的组织 | 上手快捷,费用随指标数量线性增加,需要定期清理无用指标 |
| 全链路可观测性商业产品 | 按用户量、数据量、链路采样率计费 | 中大型企业、金融与电商等领域 | 费用偏高,胜在开箱即用和问题定位效率高 |
在控制监控指标费用方面,有两条高效的路径:大幅调低高基数标签的采集范围、归档过期数据。高基数指标是费用的主要来源,指的是包含用户ID、订单ID等一直增加的唯一标签数据的指标(如curl_http_request_total)。
比如一台网关处理了几十万个请求,如果每个请求的标签里带上用户ID,每产生一个新的ID就会产生一个新的时间序列,费用会成倍增长,而它的监控价值和“接口维度聚合”的价值所差无几,正确做法是将标签维度粒度收敛到接口名、状态码、实例所在区域等有限的组合粒度为限,用户ID这类信息放进日志采集。
从地域看,“监控指标价格贵”是个相对概念,国内主流云厂商的监控产品计费粒度通常是一百万个数据点的大致区间水平,而自建方案看似免费,实际上存储成本要高很多,还要考虑值班人力成本。
Q&A
监控指标选择上常见的技巧能力是什么?
不用一次性引入太多指标,起步只需要覆盖四个核心:延迟、吞吐、错误率、饱和度,每一个指标项能解释一个问题,如果发现无法解释异常,就说明指标粒度不够细,需要补充标签维度或多个接口单独拆分。
监控指标和日志可以共用一个平台吗?
可以,但这并不等于两者是同一个数据通道,实际落地时往往是统一采集端、统一代理,在存储端分别落地到时序数据库和日志索引中,共存的价值是排查问题时减少平台间的切换成本,但两者的保留时长、成本模型和查询方式差别很大,建议在设计阶段分开规划。
业务指标应该放进监控体系吗?
应该,技术指标能反映服务的健康度,但不能取代用户真实体感,把订单转化率、核心页面可用率这类业务指标纳入监控大盘后,可以快速判断一次技术波动带来业务影响的范围,为确定故障恢复优先级提供参考依据,业务指标可以天然对接SLO体系。