DCGM 采集插件

本文介绍监控数据采集器 Categraf 的 gpu 指标采集插件dcgm与配置

前置依赖

DCGM 采集插件是fork dcgm-exporter,插件是与nvidia-dcgm交互获取数据, 所以需要先安装nvidia-dcgm服务. 如果是ubuntu系列的os,可以通过 apt-get install -y datacenter-gpu-manager=1:3.3.5(理论上大于这个版本且低于4.0.0的版本也可以), 注意这里的版本号, 不要搞错。 如果是centos, 可以在这里下载。

推荐:开源版本>=v0.4.30 企业版本>=v0.4.47 dcgm插件与dcgm-exporter版本 版本对应关系

categraf版本 企业版本 dcgm-exporter版本
>=v0.4.30 >=v0.4.47 3.0.4-3.0.0
3.1.3-3.1.2
3.1.3-3.1.2
3.1.6-3.1.3
3.1.7-3.1.4
3.1.8-3.1.5
3.2.5-3.1.7
3.3.0-3.2.0
3.3.3-3.3.0
3.3.3-3.3.1
3.3.5-3.4.0
3.3.5-3.4.1
3.3.6-3.4.2
3.3.7-3.5.0
3.3.8-3.6.0
3.3.9-3.6.1

安装完成后,通过systemctl start nvidia-dcgm.service 启动服务,通过systemctl status nvidia-dcgm.service来查看服务状态,服务处于active 再进行下一步的配置。

配置

dcgm插件,依赖cgo,所以需要下载categraf的cgo版本(只支持linux amd64)

配置文件在 conf/input.dcgm/exporter.toml。 请确保 conf/input.dcgm/目录下包含了 1.x-compatibility-metrics.csv default-counters.csv dcp-metrics-included.csv 这3个文件。

[[instances]]
# 指定使用的指标定义文件, 一般使用 default-counters.csv就够了,也可以尝试用其他两个csv文件
# path to the file, that contains the DCGM fields to collect
  collectors = "conf/input.dcgm/default-counters.csv"

# 是否是K8s环境,设置为true会附件Pod的信息
# Enable kubernetes mapping metrics to kubernetes pods
# kubernetes=false

# 指标中是否附加 gpu id 作为一个标签
# Choose Type of GPU ID to use to map kubernetes resources to pods. Possible values: "uid", "device-name"
# kubernetes-gpu-id-type = "uid"

# 是否使用 1.x 的ns
# Use old 1.x namespace
# use-old-namespace = false

# 支持的选项是f g i 
# f: FlexKey 如果MIG被禁用,则监控所有GPU;如果MIG被启用,则监控所有GPU实例
# g: MajorKey 监控top-level entities:GPU或NvSwitches或CPU 
# i: MinorKey 监控sub-level entities: GPU实例/NvLinks/CPU核心 - 如果MIG被禁用,则不能指定该选项
  cpu-devices = "f"

# 与cpu-devices的选项一样
# gpu devices
  devices = "f"

# 与cpu-devices的选项一样
  switch-devices = "f"

# 使用ConfigMap 
# ConfigMap <NAMESPACE>:<NAME> for metric data
  configmap-data = "none"

# 这里就是前置依赖的nvidia-dcgm服务, 如果是本机采集,则使用localhost:5555 ,如果是远程采集,则使用远端IP:5555
# Connect to remote hostengine at <HOST>:<PORT>
  remote-hostengine-info = "localhost:5555"

# 允许用户在没有实际GPU硬件的环境中模拟GPU, 仅用于测试
# Accept GPUs that are fake, for testing purposes only
# fake-gpus = false

# 将GPU型号名称中的每个空格替换为破折号,确保标识符连续且无空格。 
# Replaces every blank space in the GPU model name with a dash, ensuring a continuous, space-free identifier.
# replace-blanks-in-model-name = false

更新时间 2024-09-20

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云