2. 工具部署

mx-exporter有多种安装方式,本文介绍两种安装方式:wheel包安装和镜像安装。 基于Kubernetes集群部署的安装方式,请参见《曦云® 系列通用GPU mx-exporter Kubernetes集群监控部署手册》。

备注

本文档中,输出结果均以曦云C500为示例。

2.1. Wheel包

2.1.1. 安装

操作步骤

  1. 确保系统已安装Python 3。

  2. 确保系统已安装Python库prometheus_client、grpcio、protobuf(版本需大于3.12.0)。

  3. 终端输入 mx-smi -L,查看板卡信息是否正常。

  4. 安装MXMACA SDK之后,在 /opt/maca/wheel 目录下找到Python 3 的wheel包:mx_exporter_*.whl

  5. 安装wheel包。

    sudo pip3 install mx_exporter_*.whl
    

2.1.2. 使用方法

表 2.1 mx-exporter 参数说明(wheel包安装)

参数

描述

-p PORT, --port PORT

主机需要开放的HTTP端口号。若不指定,默认为8000

-i INTERVAL,

--interval INTERVAL

mx-exporter持续收集指标的间隔时间,单位ms。若不指定,默认为10000ms

-c CONFIG_FILE,

--config-file CONFIG_FILE

若不指定,默认配置文件为 /opt/maca/etc/default-counters.csv

若自定义配置文件,需基于默认配置文件,参考 3.2 修改配置文件

-h, --help

显示帮助信息

2.1.2.1. 启动mx-exporter

备注

因默认监控kernel日志,需使用sudo启动mx-exporter。

示例1

执行以下命令启动mx-exporter,指定指标配置文件为 /home/user/counters.csv

sudo mx-exporter -c /home/user/counters.csv
示例2

执行以下命令启动mx-exporter,监听端口为8002,收集指标间隔为5s:

sudo mx-exporter -p 8002 -i 5000
示例3

若希望监控sGPU相关指标,用户需要执行以下操作。

  1. 修改 /opt/maca/etc/default-counters.csv,去掉sGPU相关指标前的注释符号 # 来启用指标。

  2. 将主机设备进行切分,具体操作参见《曦云® 系列通用GPU mx-smi使用手册》中“sGPU切分选项”章节。

  3. 启动mx-exporter。

    sudo mx-exporter
    

2.1.2.2. 查看mx-exporter抓取数据

在浏览器输入 http://<host_ip>:<host_port>/metrics 或执行 curl http://<host_ip>:<host_port>/metrics,其中 <host_port> 是主机需要开放的HTTP端口号,可用 -p 指定。

抓取到的GPU指标信息格式如下:

#HELP <指标名称> <指标描述>
#TYPE <指标名称> gauge
<指标名称>{Hostname="xx",bios_version="xx",deviceId="xx",driver_version="xx",exported_container="xx",exported_namespace="xx", exported_pod="xx",modelName="xx",uuid="xx"} XX
示例
#HELP mx_chip_hotspot_temp Chip hotspot temperature
#TYPE mx_chip_hotspot_temp gauge
mx_chip_hotspot_temp{Hostname="xx",bios_version="1.16.0.0",deviceId="0",driver_version="2.6.0",exported_container="",exported_namespace="", exported_pod="",modelName="MXC500",uuid="xx"} 35.75

2.1.3. 卸载

操作步骤

  1. 执行以下命令,卸载mx-exporter wheel包。

    sudo pip3 uninstall mx-exporter
    

2.2. mx-exporter镜像

2.2.1. 加载镜像

操作步骤

  1. 解压mx-exporter镜像包:

    tar -zxvf mx-exporter.xxx.tgz
    
  2. 根据主机的架构加载对应的镜像。对于x86架构主机,使用amd64后缀的镜像;对于Arm架构主机,使用arm64后缀的镜像。

    cd mx-exporter; docker load -i mx-exporter-xx-amd64.xz
    

2.2.2. 使用方法

表 2.2 mx-exporter 参数说明(镜像部署)

参数

描述

-p PORT, --port PORT

容器端口号,默认为8000

-i INTERVAL,

--interval INTERVAL

mx-exporter持续收集指标的间隔时间,单位ms,默认为10000ms

该时间间隔需与prometheus pull请求周期一致

-c CONFIG_FILE,

--config-file CONFIG_FILE

用户自定义的指标配置文件,默认在容器中/opt/mxexporter/mx_exporter/default-counters.csv;也可修改mx-exporter.xxx.tgz压缩包解压后的mx-exporter/config/default-counters.csv,并在启动容器时传入使用

若自定义配置文件,需基于默认配置文件更改,参考 3.2 修改配置文件

-mp MOUNT_POINT,

--mount-point MOUNT_POINT

容器中的挂载路径,若用脚本 start_mxexporter.sh 启动,默认容器内挂载路径为 /host

-h, --help

显示帮助信息

表 2.3 Docker启动参数说明

参数

描述

-d

后台运行容器,并返回容器ID

--device=/dev/dri

将主机上的曦云系列GPU设备挂载到容器

--device=/dev/mxgvm

当开启虚拟化后,默认收集VF指标数据;若想一同收集PF指标数据,需将主机上的/dev/mxgvm挂载到容器中

-v /var/log:/host/var/log

将主机上的/var/log目录挂载到容器中/host/var/log

--name=mx-exporter

指定容器名称为mx-exporter

-p 0.0.0.0:<host_port>:<container_port>

host_port 为主机开放的HTTP端口

container_port 为容器端口

-v /var/lib/kubelet/pod-resources:/var/lib/kubelet/pod-resources

用于在容器中获取Kubernetes资源信息

2.2.2.1. 运行mx-exporter

示例1

使用启动脚本 mx-exporter/start_mxexporter.sh 启动mx-exporter。 --help 可查看具体使用说明。指定HTTP监听端口号为 9000:

sudo bash start_mxexporter.sh -p=9000
示例2

执行以下命令运行mx-exporter,修改 mx-exporter.xxx.tgz 压缩包解压后的配置文件 mx-exporter/config/default-counters.csv,重命名为 new_counters.csv,例如 /home/<username>/mx-exporter/config/new_counters.csv (需填写绝对路径),将修改后的配置文件挂载到容器内,并指定使用该配置文件:

sudo bash start_mxexporter.sh -c=/home/<username>/mx-exporter/config/new_counters.csv
示例3

执行以下命令运行mx-exporter,可显示Kubernetes正在使用的资源信息(指标标签:exported_containerexported_namespaceexported_pod):

sudo bash start_mxexporter.sh -pm=1
示例4

若希望监控sGPU相关指标,用户需要

  1. 修改 mx-exporter.xxx.tgz 压缩包解压后的配置文件 mx-exporter/config/default-counters.csv,去掉sGPU相关指标前的注释符号 # 来启用指标。

  2. 启动容器时加特权模式,且需要将修改后的配置文件挂载到容器内。

    sudo docker run -d --device=/dev/dri --name=mx-exporter -p 0.0.0.0:8000:8000 --privileged -v /var/log:/host/var/log -v /home/<username>/mx-exporter/config/new_counters.csv:/opt/mxexporter/mx_exporter/new_counters.csv <image ID> -c /opt/mxexporter/mx_exporter/new_counters.csv -mp /host
    
  3. 将主机设备进行切分,具体操作参见《曦云® 系列通用GPU mx-smi使用手册》中“sGPU切分选项”章节。

2.2.2.2. 查看mx-exporter抓取数据

在浏览器输入 http://<host_ip>:<host_port>/metrics 或执行 curl http://<host_ip>:<host_port>/metrics,其中 <host_port> 是主机需要开放的HTTP端口号。抓取到的GPU指标信息格式如下:

#HELP <指标名称> <指标描述>
#TYPE <指标名称> gauge
<指标名称>{Hostname="xx",bios_version="xx",deviceId="xx",driver_version="xx",exported_container="xx",exported_namespace="xx", exported_pod="xx",modelName="xx",uuid="xx"} XX
示例
#HELP mx_chip_hotspot_temp Chip hotspot temperature
#TYPE mx_chip_hotspot_temp gauge
mx_chip_hotspot_temp{Hostname="xx",bios_version="1.16.0.0",deviceId="0",driver_version="2.6.0",exported_container="",exported_namespace="", exported_pod="",modelName="MXC500",uuid="xx"} 35.75

2.2.3. 删除容器

操作步骤

  1. 执行以下命令,删除mx-exporter容器。

    docker stop <mx-exporter_container-id>
    docker rm <mx-exporter_container-id>