生产指标¶
vLLM 提供了许多可用于监控系统健康状况的指标。这些指标通过 vLLM OpenAI 兼容 API 服务器上的 /metrics 端点暴露。
你可以使用 Python 或 Docker 启动服务器。
然后查询该端点以从服务器获取最新指标。
输出
$ curl http://0.0.0.0:8000/metrics
# HELP vllm:iteration_tokens_total Histogram of number of tokens per engine_step.
# TYPE vllm:iteration_tokens_total histogram
vllm:iteration_tokens_total_sum{model_name="unsloth/Llama-3.2-1B-Instruct"} 0.0
vllm:iteration_tokens_total_bucket{le="1.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="8.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="16.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="32.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="64.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="128.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="256.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="512.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
...
以下是暴露的指标:
通用指标¶
| 指标名称 | 类型 | 描述 |
|---|---|---|
vllm:corrupted_requests | 计数器 (Counter) | 已损坏请求,指 Logits 中包含 NaN 的请求总数。 |
vllm:external_prefix_cache_hits | 计数器 (Counter) | 来自 KV 连接器跨实例缓存共享的外部前缀缓存命中,单位为缓存的 Token 数量。 |
vllm:external_prefix_cache_queries | 计数器 (Counter) | 来自 KV 连接器跨实例缓存共享的外部前缀缓存查询,单位为查询的 Token 数量。 |
vllm:generation_tokens | 计数器 (Counter) | 已处理的生成 Token 数量。 |
vllm:mm_cache_hits | 计数器 (Counter) | 多模态缓存命中,单位为缓存项数量。 |
vllm:mm_cache_queries | 计数器 (Counter) | 多模态缓存查询,单位为查询项数量。 |
vllm:num_preemptions | 计数器 (Counter) | 引擎抢占的累计次数。 |
vllm:prefix_cache_hits | 计数器 (Counter) | 前缀缓存命中,单位为缓存的 Token 数量。 |
vllm:prefix_cache_queries | 计数器 (Counter) | 前缀缓存查询,单位为查询的 Token 数量。 |
vllm:prompt_tokens | 计数器 (Counter) | 已处理的预填充(Prefill)Token 数量。 |
vllm:prompt_tokens_by_source | 计数器 (Counter) | 按来源划分的提示词(Prompt)Token 数量。 |
vllm:prompt_tokens_cached | 计数器 (Counter) | 已缓存的提示词 Token 数量(本地 + 外部)。 |
vllm:prompt_tokens_recomputed | 计数器 (Counter) | 前向传递中重新计算的缓存 Token 数量。 |
vllm:request_success | 计数器 (Counter) | 成功处理的请求计数。 |
vllm:engine_sleep_state | 仪表 (Gauge) | 引擎睡眠状态;awake = 0 表示引擎正在睡眠;awake = 1 表示引擎处于唤醒状态;weights_offloaded = 1 表示睡眠级别 1;discard_all = 1 表示睡眠级别 2。 |
vllm:kv_cache_usage_perc | 仪表 (Gauge) | KV 缓存使用率。1 表示 100% 使用。 |
vllm:lora_requests_info | 仪表 (Gauge) | LoRA 请求的运行统计信息。 |
vllm:num_requests_running | 仪表 (Gauge) | 模型执行批次中的请求数量。 |
vllm:num_requests_waiting | 仪表 (Gauge) | 等待处理的请求数量。 |
vllm:e2e_request_latency_seconds | 直方图 (Histogram) | 端到端请求延迟的直方图(单位:秒)。 |
vllm:inter_token_latency_seconds | 直方图 (Histogram) | Token 间延迟的直方图(单位:秒)。 |
vllm:iteration_tokens_total | 直方图 (Histogram) | 每个 engine_step 的 Token 数量直方图。 |
vllm:kv_block_idle_before_evict_seconds | 直方图 (Histogram) | KV 缓存块在被驱逐前的空闲时间直方图。采样指标(受 --kv-cache-metrics-sample 控制)。 |
vllm:kv_block_lifetime_seconds | 直方图 (Histogram) | KV 缓存块从分配到驱逐的生命周期直方图。采样指标(受 --kv-cache-metrics-sample 控制)。 |
vllm:kv_block_reuse_gap_seconds | 直方图 (Histogram) | 连续 KV 缓存块访问之间的时间间隔直方图。仅记录最近的访问(环形缓冲区)。采样指标(受 --kv-cache-metrics-sample 控制)。 |
vllm:request_decode_time_seconds | 直方图 (Histogram) | 请求在 DECODE 阶段花费的时间直方图。 |
vllm:request_generation_tokens | 直方图 (Histogram) | 已处理的生成 Token 数量。 |
vllm:request_inference_time_seconds | 直方图 (Histogram) | 请求在 RUNNING 阶段花费的时间直方图。 |
vllm:request_max_num_generation_tokens | 直方图 (Histogram) | 请求生成的最大 Token 数量直方图。 |
vllm:request_params_max_tokens | 直方图 (Histogram) | max_tokens 请求参数的直方图。 |
vllm:request_params_n | 直方图 (Histogram) | n 请求参数的直方图。 |
vllm:request_prefill_kv_computed_tokens | 直方图 (Histogram) | 预填充期间计算的新 KV Token 直方图(不包括已缓存的 Token)。 |
vllm:request_prefill_time_seconds | 直方图 (Histogram) | 请求在 PREFILL 阶段花费的时间直方图。 |
vllm:request_prompt_tokens | 直方图 (Histogram) | 已处理的预填充(Prefill)Token 数量。 |
vllm:request_queue_time_seconds | 直方图 (Histogram) | 请求在 WAITING 阶段花费的时间直方图。 |
vllm:request_time_per_output_token_seconds | 直方图 (Histogram) | 每个请求的 time_per_output_token_seconds 直方图。 |
vllm:time_to_first_token_seconds | 直方图 (Histogram) | 首个 Token 生成时间直方图(单位:秒)。 |
投机采样指标¶
| 指标名称 | 类型 | 描述 |
|---|---|---|
vllm:spec_decode_num_accepted_tokens | 计数器 (Counter) | 已接受的 Token 数量。 |
vllm:spec_decode_num_accepted_tokens_per_pos | 计数器 (Counter) | 按草稿位置划分的已接受 Token 数量。 |
vllm:spec_decode_num_draft_tokens | 计数器 (Counter) | 草稿 Token 数量。 |
vllm:spec_decode_num_drafts | 计数器 (Counter) | 投机采样草稿数量。 |
NIXL KV 连接器指标¶
| 指标名称 | 类型 | 描述 |
|---|---|---|
vllm:nixl_num_failed_notifications | 计数器 (Counter) | NIXL KV 缓存通知失败次数。 |
vllm:nixl_num_failed_transfers | 计数器 (Counter) | NIXL KV 缓存传输失败次数。 |
vllm:nixl_num_kv_expired_reqs | 计数器 (Counter) | KV 过期的请求数量。注意:此指标在 P 实例上跟踪。 |
vllm:nixl_bytes_transferred | 直方图 (Histogram) | 每次 NIXL KV 缓存传输的字节数直方图。 |
vllm:nixl_num_descriptors | 直方图 (Histogram) | 每次 NIXL KV 缓存传输的描述符数量直方图。 |
vllm:nixl_post_time_seconds | 直方图 (Histogram) | NIXL KV 缓存传输的发布时间直方图。 |
vllm:nixl_xfer_time_seconds | 直方图 (Histogram) | NIXL KV 缓存传输的持续时间直方图。 |
模型算力利用率(MFU)性能指标¶
这些指标可通过 --enable-mfu-metrics 获取。
| 指标名称 | 类型 | 描述 |
|---|---|---|
vllm:estimated_flops_per_gpu_total | 计数器 (Counter) | 每个 GPU 的估计浮点运算次数(用于模型算力利用率计算)。 |
vllm:estimated_read_bytes_per_gpu_total | 计数器 (Counter) | 每个 GPU 的估计内存读取字节数(用于模型算力利用率计算)。 |
vllm:estimated_write_bytes_per_gpu_total | 计数器 (Counter) | 每个 GPU 的估计内存写入字节数(用于模型算力利用率计算)。 |
弃用策略¶
注意:当指标在 X.Y 版本中被弃用时,它们会在 X.Y+1 版本中隐藏,但可以使用 --show-hidden-metrics-for-version=X.Y 逃生舱口重新启用,并在 X.Y+2 版本中彻底移除。