运维监控与排障50 条

四类必看指标

监控围绕四类:延迟(TTFT/TPOT 与分位)、吞吐(统一口径)、资源(KV 水位、显存、利用率)、健康(错误率、超时率、重启次数);每类钉一个面板加一条告警。

监控围绕四类指标

推理服务的监控不必面面俱到,但四类必须齐:延迟(首 token 延迟、单 token 输出时间与分位值)、吞吐(统一口径的每秒输出 token 数与请求数)、资源(KV 水位、显存占用与计算单元利用率)、健康(错误率、超时率与重启次数)。每类钉一个面板加一条告警,值班时才有可用的线索。

四类指标

类别代表指标用途
延迟首 token 延迟、单 token 输出时间、分位值衡量体验与对照服务目标
吞吐每秒输出 token 数、每秒请求数容量规划与成本核算的输入
资源KV 水位、显存占用、计算单元利用率决定扩容与调参方向
健康错误率、超时率、重启次数判断服务是否稳定

每类钉一个动作

延迟面板看分位曲线,告警看尾延迟是否超过约定阈值
吞吐固定统计口径,否则与历史数据不可比
资源看 KV 水位与等待请求数的组合含义
健康按状态码分类统计,客户端错误与服务端错误分开算

核对指标的入口

核对指标的入口
# 引擎侧指标端点(以实际实现为准,通常在内网端口)
curl -s http://127.0.0.1:8000/metrics | head -20
# 硬件侧:显存与利用率的结构化输出
nvidia-smi --query-gpu=index,memory.used,utilization.gpu --format=csv,noheader,nounits
# 网关侧:状态码分布与时延统计看访问日志

典型使用场景

  • 容量规划:用吞吐与 KV 水位两条曲线判断何时需要扩容
  • 上线验证:灰度期间对比新旧版本的延迟分位,决定是否继续放量
  • 故障止损:错误率与超时率突增时先看面板再决定摘实例还是回滚
  • 成本核算:以稳定态吞吐作为每百万 token 成本的输入
  • 复盘取证:保留变更时间轴,让指标突刺能对应到具体改动
指标不在多,在于能对应处置动作:一条告警如果值班看到后不知道该做什么,它带来的价值很有限,还会造成告警疲劳。
监控端点默认面向内网:指标会暴露内部拓扑与容量信息,绑定的监听地址、防火墙与网关鉴权要三层收口。

易错点

  • 只看计算单元利用率:利用率高不代表服务健康,延迟与错误率才是体验与可用性的直接信号
  • 吞吐口径不统一:输入输出 token 混算、含不含排队时间没定,历史数据无法比较
  • 错误率不分层:客户端参数错误与服务端故障算在一起,告警会持续误报
  • 没有变更时间轴:指标突刺时不知道对应哪次改动,只能逐个猜
  • 指标端点暴露到公网:容量与内部拓扑被直接读取,属于信息泄露

数据来源与参考

  • vLLM 官方文档:Production Metrics(docs.vllm.ai)
  • Google SRE 手册:监控分布式系统(sre.google/sre-book)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌