Chandra vLLM服务监控:Prometheus+Grafana指标采集,GPU利用率实时看板
Chandra vLLM服务监控:Prometheus+Grafana指标采集,GPU利用率实时看板
1. 监控需求与方案概述
在实际部署Chandra vLLM服务后,很多用户会遇到这样的问题:服务运行是否正常?GPU资源利用情况如何?处理速度是否达到预期?如果没有合适的监控工具,就像在黑暗中开车一样,完全不知道系统状态。
这就是为什么我们需要为Chandra vLLM服务搭建完整的监控体系。通过Prometheus采集指标数据,Grafana进行可视化展示,我们可以实时掌握:
- GPU利用率和使用情况
- 内存占用和显存使用
- 请求处理速度和吞吐量
- 服务健康状态和错误率
本文将手把手教你搭建完整的监控系统,让你对Chandra vLLM服务的运行状况了如指掌。
2. 环境准备与组件安装
2.1 系统要求
在开始之前,请确保你的系统满足以下要求:
- Ubuntu 18.04+ 或 CentOS 7+
- Docker 和 Docker Compose 已安装
- NVIDIA GPU 驱动和 CUDA 工具包
- 至少 4GB 可用内存(用于监控组件)
2.2 安装Prometheus
首先创建监控专用的目录结构:
mkdir -p chandra-monitoring/{prometheus,grafana}
cd chandra-monitoring
创建Prometheus配置文件 prometheus/prometheus.yml:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-exporter'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
- job_name: 'nvidia-gpu'
static_configs:
- targets: ['nvidia-gpu-exporter:9835']
创建Docker Compose文件 docker-compose.yml:
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus:/etc/prometheus
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=200h'
- '--web.enable-lifecycle'
restart: unless-stopped
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)'
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
devices:
- /dev/kmsg:/dev/kmsg
restart: unless-stopped
nvidia-gpu-exporter:
image: nvidia/dcgm-exporter:latest
container_name: nvidia-gpu-exporter
environment:
- NVIDIA_DISABLE_REMOTE_CLIENT=true
volumes:
- /run/nvidia:/run/nvidia:ro
restart: unless-stopped
volumes:
prometheus_data:
2.3 安装Grafana
创建Grafana配置文件目录和数据目录:
mkdir -p grafana/{data,provisioning}
在 docker-compose.yml 中添加Grafana服务:
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- ./grafana/data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin123
- GF_USERS_ALLOW_SIGN_UP=false
restart: unless-stopped
depends_on:
- prometheus
3. 配置数据采集与指标导出
3.1 启动监控服务
现在启动所有监控组件:
docker-compose up -d
检查服务状态:
docker-compose ps
你应该看到所有服务都处于运行状态。现在可以通过以下地址访问各个服务:
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (用户名: admin, 密码: admin123)
3.2 配置Chandra vLLM指标导出
Chandra vLLM服务本身提供了Prometheus指标端点。确保你的vLLM服务启动时启用了指标收集:
# 启动Chandra vLLM服务并启用指标导出
python -m vllm.entrypoints.api_server \
--model chandra-ocr-model \
--host 0.0.0.0 \
--port 8000 \
--enable-prometheus-metrics
在Prometheus配置中添加vLLM作业,编辑 prometheus/prometheus.yml:
scrape_configs:
# 添加vLLM监控配置
- job_name: 'vllm'
static_configs:
- targets: ['your-vllm-host:8000'] # 替换为实际的vLLM服务地址
metrics_path: '/metrics'
scrape_interval: 10s
重新加载Prometheus配置:
curl -X POST http://localhost:9090/-/reload
4. Grafana看板配置
4.1 添加数据源
登录Grafana后,首先添加Prometheus数据源:
- 点击左侧菜单的"Configuration" → "Data Sources"
- 点击"Add data source"
- 选择"Prometheus"
- 设置URL为: http://prometheus:9090
- 点击"Save & Test"
4.2 导入GPU监控看板
Grafana社区提供了丰富的监控看板模板。我们将使用NVIDIA GPU监控看板:
- 点击左侧菜单的"+" → "Import"
- 输入看板ID: 15143 (NVIDIA DCGM Exporter Dashboard)
- 选择刚才添加的Prometheus数据源
- 点击"Import"
4.3 创建自定义Chandra监控看板
除了通用的GPU监控,我们还需要专门针对Chandra vLLM服务的监控看板。创建新的看板:
GPU利用率面板:
# GPU利用率
DCGM_FI_DEV_GPU_UTIL{instance=~"$instance"}
# 显存使用率
DCGM_FI_DEV_MEM_COPY_UTIL{instance=~"$instance"}
# 显存使用量
DCGM_FI_DEV_FB_USED{instance=~"$instance"}
vLLM服务指标面板:
# 请求吞吐量
rate(vllm_num_requests_completed_total[1m])
# 平均响应时间
rate(vllm_request_latency_seconds_sum[1m]) / rate(vllm_request_latency_seconds_count[1m])
# 当前活跃请求
vllm_num_requests_running
# 错误率
rate(vllm_num_requests_failed_total[1m]) / rate(vllm_num_requests_started_total[1m])
4.4 关键监控指标说明
| 指标类别 | 关键指标 | 正常范围 | 告警阈值 |
|---|---|---|---|
| GPU使用 | GPU利用率 | 40-90% | >95% 或 <10% |
| 显存使用 | 显存使用量 | 根据模型调整 | >90% 总显存 |
| 服务性能 | 请求延迟 | <2秒 | >5秒 |
| 服务健康 | 错误率 | <1% | >5% |
| 吞吐量 | QPS | 根据硬件调整 | 下降50% |
5. 告警配置与通知
5.1 配置Prometheus告警规则
创建告警规则文件 prometheus/alerts.yml:
groups:
- name: chandra-alerts
rules:
- alert: HighGPUUsage
expr: avg(rate(DCGM_FI_DEV_GPU_UTIL[5m])) by (instance) > 95
for: 5m
labels:
severity: warning
annotations:
summary: "高GPU使用率 (实例 {{ $labels.instance }})"
description: "GPU使用率持续高于95%,当前值: {{ $value }}%"
- alert: HighMemoryUsage
expr: (DCGM_FI_DEV_FB_USED / DCGM_FI_DEV_FB_FREE) * 100 > 90
for: 5m
labels:
severity: warning
annotations:
summary: "高显存使用率 (实例 {{ $labels.instance }})"
description: "显存使用率高于90%,当前值: {{ $value }}%"
- alert: HighRequestLatency
expr: rate(vllm_request_latency_seconds_sum[5m]) / rate(vllm_request_latency_seconds_count[5m]) > 5
for: 2m
labels:
severity: critical
annotations:
summary: "高请求延迟 (实例 {{ $labels.instance }})"
description: "平均请求延迟超过5秒,当前值: {{ $value }}秒"
在Prometheus配置中引用告警规则:
rule_files:
- alerts.yml
5.2 配置告警通知
在Grafana中配置告警通知渠道:
- 点击"Alerting" → "Contact points"
- 添加邮件、Slack或Webhook通知渠道
- 测试通知是否正常工作
6. 实际监控效果展示
完成以上配置后,你将获得一个功能完整的监控看板,包含以下关键信息:
GPU监控区域:
- 实时GPU利用率曲线图
- 显存使用情况和趋势
- 温度和功耗监控
服务性能区域:
- 请求吞吐量(QPS)实时显示
- 平均响应时间监控
- 并发请求数统计
资源使用区域:
- CPU和内存使用情况
- 磁盘IO和网络流量
- 容器资源限制和使用
这样的监控看板让你能够:
- 实时了解服务运行状态
- 快速定位性能瓶颈
- 预测资源需求并进行扩容
- 及时发现并处理异常情况
7. 总结
通过本文的指导,你已经成功为Chandra vLLM服务搭建了完整的监控系统。这个系统不仅能够监控GPU利用率,还能全面掌握服务的运行状态、性能指标和资源使用情况。
关键收获:
- 学会了使用Prometheus + Grafana搭建监控系统
- 掌握了GPU和服务指标的采集方法
- 配置了实用的监控看板和告警规则
- 建立了完整的服务监控体系
后续优化建议:
- 根据实际业务需求调整监控指标
- 设置自动化扩容策略基于监控指标
- 定期review监控数据优化资源配置
- 建立监控数据的长期存储和分析
现在你可以 confidently 运行Chandra vLLM服务,因为你有了一双"眼睛"时刻监控着系统的健康状况。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐


所有评论(0)