DCGM Exporter 使用指南
DCGM-Exporter 是基于 DCGM 架构、为摩尔线程数据中心 GPU(MTT 系列)定制的 GPU 指标导出工具。它使用 Go 语言编写,通过 HTTP 端点(/metrics)以 Prometheus 格式暴露 GPU 指标,可无缝对接 Prometheus、Grafana 等监控系统。
本文介绍 DCGM Exporter 的使用方法, DCGM 详情参考 Data Center GPU Management 使用手册,包括诊断指南、XID参考等。
组件架构
MT GPU Operator / Device Plugin 的安装文件及指导文档中,包含了 DCGM 和 DCGM Exporter 的镜像地址及容器化部署方式。该 独立模式 下 DCGM Exporter 仅作为指标采集与导出前端,连接单独运行的 mt-hostengine 进程。
架构概述
mt-dcgm以 hostengine 模式提供服务:
hostNetwork: true
hostPort: 5555
mt-dcgm-exporter通过节点本地地址连接mt-dcgm:
DCGM_REMOTE_HOSTENGINE_INFO=localhost:5555
┌─────────────────────────────────────────────────────────┐
│ │
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ │
│ │ mt-hostengine │◄────►│ dcgm-exporter (Go) │ │
│ │ │ │ ┌───────────────────┐ │ │
│ │ │ │ │ Pipeline │ │ │
│ │ ┌─────────────┐ │ │ │ ┌─────────────┐ │ │ │
│ │ │ DCGM Fields │ │ │ │ │ Collector │ │ │ │
│ │ └─────────────┘ │ │ │ └─────────────┘ │ │ │
│ └──────────────────┘ │ │ ┌─────────────┐ │ │ │
│ │ │ │ HTTP Server │ │ │ │
│ │ │ │ (:9400) │ │ │ │
│ │ │ └─────────────┘ │ │ │
│ │ └───────────────────┘ │ │
│ ┌──────────────────┐ └─────────────────────────┘ │
│ │ dcgmi CLI │ 命令行工具 │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼
┌──────────────────┐ ┌──────────────────┐
│ Prometheus │─────►│ Grafana │
│ (指标采集) │ │ (可视化面板) │
└──────────────────┘ └──────────────────┘
数据流
mt-hostengine通过 MUSA / MTML 驱动访问 GPU 硬件寄存器;- DCGM Exporter 定期调用 DCGM API 采集字段;
- 采集到的指标通过 Pipeline 处理并缓存;
- Prometheus 通过
/metrics端点拉取指标; - Grafana 从 Prometheus 读取数据并展示。
配置选项
DCGM Exporter 支持通过命令行参数和环境变量进行配置:
| 环境变量 | 说明 | 命令行参数 | 默认值 |
|---|---|---|---|
DCGM_EXPORTER_COLLECTORS | 指标配置文件路径 | -f | /etc/dcgm-exporter/default-counters.csv |
DCGM_EXPORTER_LISTEN | HTTP 监听地址 | -a | :9400 |
DCGM_EXPORTER_INTERVAL | 采集间隔(毫秒) | -c | 10000(10 秒) |
DCGM_EXPORTER_KUBERNETES | 启用 Kubernetes Pod 映射 | -k | false |
DCGM_EXPORTER_CONFIGMAP_DATA | ConfigMap 命名空间和名称 | -m | none |
DCGM_REMOTE_HOSTENGINE_INFO | 远程 hostengine 地址(Host:Port) | -r | 空(嵌入模式) |
DCGM_EXPORTER_DEVICES_STR | 指定监控的设备 | -d | 所有 GPU |
设备字符串语法
[g[:id1[,-id2]]] | [i[:id1[,-id2]]]
g= 监控所有 GPU(建议非 MIG 场景)g:0,1= 监控 GPU 0 和 1i= 监控所有 GPU Instance(MIG 场景)i:0,2-4= 监控 GPU Instance 0、2、3、4
自定义指标
Exporter 通过 CSV 文件配置需要采集的 DCGM 字段,格式为:
DCGM_FIELD, prometheus_type, help_text
标签字段(标签类型为 label)
| DCGM 字段 | 说明 |
|---|---|
DCGM_FI_DRIVER_VERSION | 驱动版本 |
DCGM_FI_MTML_VERSION | MTML 版本 |
DCGM_FI_DEV_NAME | GPU 名称 |
DCGM_FI_DEV_BRAND | GPU 品牌 |
DCGM_FI_DEV_SERIAL | GPU 序列号 |
DCGM_FI_DEV_UUID | GPU UUID |
DCGM_FI_DEV_VBIOS_VERSION | VBIOS 版本 |
时钟与温度
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_SM_CLOCK | gauge | SM 时钟频率(MHz) |
DCGM_FI_DEV_MEM_CLOCK | gauge | 显存时钟频率(MHz) |
DCGM_FI_DEV_MEMORY_TEMP | gauge | 显存温度(°C) |
DCGM_FI_DEV_GPU_TEMP | gauge | GPU 温度(°C) |
功率
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_POWER_USAGE | gauge | 当前功耗(W) |
DCGM_FI_DEV_POWER_MGMT_LIMIT | gauge | 功率管理上限(W) |
PCIe
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_PCIE_TX_THROUGHPUT | counter | PCIe 发送吞吐量(KB) |
DCGM_FI_DEV_PCIE_RX_THROUGHPUT | counter | PCIe 接收吞吐量(KB) |
DCGM_FI_DEV_PCIE_REPLAY_COUNTER | counter | PCIe 重试次数 |
DCGM_FI_DEV_PCIE_MAX_LINK_GEN | gauge | 最大 PCIe 链路代数 |
DCGM_FI_DEV_PCIE_MAX_LINK_WIDTH | gauge | 最大 PCIe 链路宽度 |
DCGM_FI_DEV_PCIE_LINK_GEN | gauge | 当前 PCIe 链路代数 |
DCGM_FI_DEV_PCIE_LINK_WIDTH | gauge | 当前 PCIe 链路宽度 |
利用率与 XID
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_GPU_UTIL | gauge | GPU 利用率(%) |
DCGM_FI_DEV_XID_ERRORS | gauge | 最近 XID 错误码 |
显存
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_FB_FREE | gauge | 显存空闲(MB) |
DCGM_FI_DEV_FB_USED | gauge | 显存已用(MB) |
DCGM_FI_DEV_FB_TOTAL | gauge | 显存总量(MB) |
DCGM_FI_DEV_FB_USED_PERCENT | gauge | 显存利用率(%) |
DCGM_FI_DEV_MEMORY_STATUS | gauge | 显存健康状态 |
硬件
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_HWR_COUNTER | counter | 硬件锁死恢复计数 |
MTLink(摩尔线程特有)
MTLink 是摩尔线程 GPU 间的高速互联链路,以下为 MTLink 相关指标:
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_MTLINK_CRC_DATA_ERROR_COUNT_TOTAL | counter | MTLink 数据 CRC 错误次数 |
DCGM_FI_DEV_MTLINK_REPLAY_ERROR_COUNT_TOTAL | counter | MTLink 重放错误次数 |
DCGM_FI_DEV_MTLINK_RECOVERY_ERROR_COUNT_TOTAL | counter | MTLink 恢复错误次数 |
DCGMI_FI_DEV_MTLINK_UNCORRECTABLE_COUNTER_TOTAL | counter | MTLink 不可纠正错误次数 |
DCGMI_FI_DEV_MTLINK_CORRECTABLE_COUNTER_TOTAL | counter | MTLink 可纠正错误次数 |
DCGM_FI_PROF_MTLINK_TX_BYTES | counter | MTLink 发送字节数(KB) |
DCGM_FI_PROF_MTLINK_RX_BYTES | counter | MTLink 接收字节数(KB) |
CPU / 内存亲和性
| DCGM 字段 | 类型 | 说明 |
|---|---|---|
DCGM_FI_DEV_CPU_AFFINITY_0..3 | gauge | CPU 亲和性位掩码(共 256 核) |
DCGM_FI_DEV_MEM_AFFINITY_0..3 | gauge | 内存节点亲和性位掩码(共 256 节点) |
Grafana 集成
在 gpu-operator-full/grafana 路径下,提供开箱即用的 Grafana Dashboard 定义文件。
# 导入 Grafana Dashboard
grafana-cli dashboards import <dashboard.json>
导入后可查看以下面板:
- GPU 利用率概览(所有 GPU)
- 显存使用量 / 使用率
- GPU 温度与功耗
- MTLink 互联状态与带宽
- PCIe 吞吐量
- XID 错误事件

