指标端点是什么
vLLM 在 /metrics 上暴露 Prometheus 文本格式的指标:运行中与等待中的请求数、TTFT 与 TPOT 直方图、KV 池使用率、前缀缓存命中相关计数等。加一个 scrape job 就能接入现有监控栈,无需改动服务。指标名带统一前缀且随版本微调,写查询和告警表达式前先看本机实际输出。
基本信息
| 端点 | /metrics(与 OpenAI 兼容接口同一端口) |
|---|---|
| 格式 | Prometheus 文本格式,直接抓取即可 |
| 容量类指标 | 运行中请求数、等待中请求数、KV 池使用率 |
| 体验类指标 | 首 token 延迟与每 token 延迟直方图 |
| 权限要求 | 只要网络可达,抓取本身通常不需要额外凭证 |
典型使用场景
- 接入监控栈:Prometheus 抓取后统一在 Grafana 出看板,不再人工登录机器看现象
- 延迟分析:用直方图算 P95/P99,判断是排队变差还是模型变慢
- 容量观测:KV 水位与等待请求数一起看,决定该扩容还是该限流
- 压测对照:压测期间同步采集指标,让吞吐结论与内部状态互相印证
- 故障取证:异常窗口的指标快照与日志一起归档,便于事后归因
抓取配置与先看再写
抓取配置与先看再写
scrape_configs:
- job_name: vllm
metrics_path: /metrics
static_configs:
- targets: ["127.0.0.1:8000"]
# 先看实际输出,再写查询与告警表达式:
# curl -s http://127.0.0.1:8000/metrics | grep -E 'num_requests|ttft|tpot|gpu_cache' | head指标按用途分组
| 用途 | 看什么 | 判断方式 |
|---|---|---|
| 容量 | 等待请求数、KV 池使用率 | 两者同时上涨即接近上限 |
| 体验 | 首 token 与每 token 延迟直方图 | 算分位数,不看均值 |
| 缓存 | 前缀缓存命中相关计数 | 命中率下降说明前缀变了 |
| 吞吐 | 累计生成 token 数 | 配合请求数算单位产出 |
指标名随版本有微调:升级后旧表达式可能直接查不到数据,告警会静默失效。升级流程里应包含一次指标核对。
分位数要用直方图聚合函数计算,并选择合适的统计区间:区间太短样本不足、太长会把历史状态混进来。