UCM 观测能力¶
UCM 通过 vLLM connector 导出指标,并重用 vLLM 的 Prometheus /metrics 端点,不需要单独的导出器、导出模式或服务端口。
建议使用 Prometheus 抓取 vLLM 指标,使用 Grafana 可视化收集的数据。
使用至少 5 秒的抓取和仪表板刷新间隔来处理 UCM 指标。本指南中的 Prometheus 和 Metrics-view 示例都使用 5 秒。更短的间隔通常不会使 UCM 指标更新更快。
实际刷新频率还取决于 vLLM。UCM 首先在内部累积指标。新数据仅在 vLLM 处理请求并调用 connector 的 get_kv_connector_stats() 方法后才同步到 vLLM 暴露的 Prometheus 指标。当没有推理请求时,vLLM 不会调用此方法,UCM 指标不会更新。
启用或禁用指标¶
使用内置配置¶
UCM 指标默认启用。当省略 metrics_config_path 时,UCM 使用完整的内置指标集。也可以显式启用指标:
enable_metrics: true
要禁用所有 UCM 指标:
enable_metrics: false
使用自定义配置¶
要限制导出的指标集或自定义 Histogram 桶,设置以下顶层 UCM 选项:
enable_metrics: true
metrics_config_path: "/workspace/unified-cache-management/examples/metrics/metrics_configs.yaml"
一旦设置了 metrics_config_path,该文件就成为了指标启用列表。只有该文件中定义的指标才会被注册。
指标文件必须存在且可被 vLLM 进程读取。否则,UCM 指标将不会暴露。
访问指标¶
使用 UCM connector 启动 vLLM 并发送至少一个推理请求。然后验证 UCM 指标是否可用:
curl http://<vllm-ip>:<vllm-port>/metrics | grep '^ucm:'
大多数 UCM 指标只有在相应代码路径运行后才会出现。当没有外部存储命中时,可能只存在一小部分指标。
UCM 指标标签¶
通过 vLLM connector 导出的每个指标都带有这些标签:
| 标签 | 含义 | 示例 |
|---|---|---|
model_name |
vLLM 提供的模型名称,取自 vLLM 模型配置 | Qwen3-32B |
engine |
产生指标的 vLLM 引擎;区分同一服务中的 DP 实例 | engine-0 |
worker_rank |
产生指标的 UCM 进程,对应 TP 实例;worker 使用其分布式 rank,scheduler 使用 scheduler |
0, 1, scheduler |
例如:
ucm:cache_load_bytes_total{model_name="Qwen3-32B",engine="engine-0",worker_rank="0"} 1.048576e+08
Prometheus 和 Grafana 集成¶
Prometheus 和 Grafana 是观察 UCM 的推荐组合。Prometheus 定期抓取 vLLM 指标端点,存储历史时间序列数据,并提供查询接口。Grafana 查询 Prometheus 并将指标显示为仪表板。
配置 Prometheus¶
如果 Prometheus 已经在抓取 vLLM 的 /metrics 端点,则不需要为 UCM 添加额外的抓取任务,因为 vLLM 和 UCM 指标都通过同一端点暴露。
创建 prometheus.yml 并配置 Prometheus 抓取 vLLM 服务:
global:
scrape_interval: 5s
evaluation_interval: 30s
scrape_configs:
- job_name: vllm
metrics_path: /metrics
static_configs:
- targets:
- "<vllm-ip>:8000"
安装 Grafana¶
创建持久卷并启动 Grafana:
docker volume create grafana-data
docker run -d \
--name grafana \
--restart unless-stopped \
-p 3000:3000 \
-v grafana-data:/var/lib/grafana \
grafana/grafana
打开 http://<grafana-ip>:3000。首次登录时,用户名和密码都使用 admin,然后在提示时更改密码。
添加 Prometheus 数据源¶
在 Grafana 中,进入连接 → 添加新连接,搜索 Prometheus,并配置:
- Prometheus 服务器 URL:
http://prometheus:9090 - 身份验证:对于未认证的本地部署选择无身份验证
- 选择保存并测试并验证 Grafana 可以查询 Prometheus
导入 UCM 仪表板¶
进入仪表板 → 新建 → 导入,上传所需的仪表板 JSON 文件,选择 Prometheus 数据源,然后点击导入。
UCM 提供这些仪表板:
| 文件 | 用途 |
|---|---|
examples/metrics/grafana_vllm.json |
vLLM 请求延迟、令牌吞吐量、调度器状态和缓存状态 |
examples/metrics/grafana_ucm_overview.json |
vLLM/UCM 概览、输入和输出令牌计数、Store 健康状态和探测趋势 |
examples/metrics/grafana_connector.json |
Connector 查找/加载/保存请求计数、块计数、持续时间、吞吐量和错误 |
有关完整的指标文档,请参阅原始 UCM 文档中的详细指标指南。