NVIDIA_SMI 插件
介绍 Categraf 的 NVIDIA_SMI GPU 采集插件,说明如何通过 nvidia-smi 获取本机或远端 GPU 指标并上报。
该采集插件的原理,就是读取 nvidia-smi 的内容输出,转换为监控数据上报。
当使用 query_field_names = "AUTO" 时,相当于 nvidia-smi --format=csv --help-query-gpu,将可以使用的选项都拼接成参数,并执行nvidia-smi --format=csv --query-gpu 上一个命令拼接的参数列表 ,然后分别解析转换为符合prometheus格式的指标上报。
如果你清楚自己想要采集的指标,那可以将指标用逗号分割,比如query_field_names="uid,count" ,这相当于执行nvidia-smi --format=csv --query-gpu uid,count 并解析上报.
配置
配置文件在 conf/input.nvidia_smi/nvidia_smi.toml
# # collect interval
# interval = 15
# 下面这个配置是最重要的配置,如果要采集 nvidia-smi 的信息,就打开下面的配置,
# 给出 nvidia-smi 命令的路径,最好是给绝对路径
# 相当于让 Categraf 执行本机的 nvidia-smi 命令,获取本机 GPU 的状态信息
# exec local command
# nvidia_smi_command = "nvidia-smi"
# 如果想远程方式采集远端机器的 GPU 状态信息,可以使用 ssh 命令,登录远端机器
# 在远端机器执行 nvidia-smi 的命令输出,通常 Categraf 是部署在每个物理机上的
# 所以,ssh 这种方式,理论上用不到
# exec remote command
# nvidia_smi_command = "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null SSH_USER@SSH_HOST nvidia-smi"
# Comma-separated list of the query fields.
# You can find out possible fields by running `nvidia-smi --help-query-gpus`.
# The value `AUTO` will automatically detect the fields to query.
query_field_names = "AUTO"
如果使用公有云的GPU 机器,找对应云监控的插件即可。
比如,使用阿里云GPU,可以使用inputs/aliyun 插件。阿里云的GPU 指标存在于以下两个namespace下:
https://cms.console.aliyun.com/metric-meta/acs_ecs_dashboard/ecs?spm=a2c4g.163515.0.0.3e0b76abZqmJTQ