2. 工具部署
mx-exporter有多种安装方式,本文介绍两种安装方式:wheel包安装和镜像安装。 基于Kubernetes集群部署的安装方式,请参见《曦云® 系列通用GPU mx-exporter Kubernetes集群监控部署手册》。
备注
本文档中,输出结果均以曦云C500为示例。
2.1. Wheel包
2.1.1. 安装
操作步骤
确保系统已安装Python 3。
确保系统已安装Python库prometheus_client、grpcio、protobuf(版本需大于3.12.0)。
终端输入
mx-smi -L,查看板卡信息是否正常。安装MXMACA SDK之后,在 /opt/maca/wheel 目录下找到Python 3 的wheel包:mx_exporter_*.whl。
安装wheel包。
sudo pip3 install mx_exporter_*.whl
2.1.2. 使用方法
参数 |
描述 |
|---|---|
|
主机需要开放的HTTP端口号。若不指定,默认为8000 |
|
mx-exporter持续收集指标的间隔时间,单位ms。若不指定,默认为10000ms |
|
若不指定,默认配置文件为 /opt/maca/etc/default-counters.csv |
|
显示帮助信息 |
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相关指标,用户需要执行以下操作。
修改 /opt/maca/etc/default-counters.csv,去掉sGPU相关指标前的注释符号
#来启用指标。将主机设备进行切分,具体操作参见《曦云® 系列通用GPU mx-smi使用手册》中“sGPU切分选项”章节。
启动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. 卸载
操作步骤
执行以下命令,卸载mx-exporter wheel包。
sudo pip3 uninstall mx-exporter
2.2. mx-exporter镜像
2.2.1. 加载镜像
操作步骤
解压mx-exporter镜像包:
tar -zxvf mx-exporter.xxx.tgz
根据主机的架构加载对应的镜像。对于x86架构主机,使用amd64后缀的镜像;对于Arm架构主机,使用arm64后缀的镜像。
cd mx-exporter; docker load -i mx-exporter-xx-amd64.xz
2.2.2. 使用方法
参数 |
描述 |
|---|---|
|
容器端口号,默认为8000 |
|
mx-exporter持续收集指标的间隔时间,单位ms,默认为10000ms 该时间间隔需与prometheus pull请求周期一致 |
|
用户自定义的指标配置文件,默认在容器中/opt/mxexporter/mx_exporter/default-counters.csv;也可修改mx-exporter.xxx.tgz压缩包解压后的mx-exporter/config/default-counters.csv,并在启动容器时传入使用 |
|
容器中的挂载路径,若用脚本 start_mxexporter.sh 启动,默认容器内挂载路径为 /host |
|
显示帮助信息 |
参数 |
描述 |
|---|---|
|
后台运行容器,并返回容器ID |
|
将主机上的曦云系列GPU设备挂载到容器 |
|
当开启虚拟化后,默认收集VF指标数据;若想一同收集PF指标数据,需将主机上的/dev/mxgvm挂载到容器中 |
|
将主机上的/var/log目录挂载到容器中/host/var/log |
|
指定容器名称为mx-exporter |
|
|
|
用于在容器中获取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_container、exported_namespace、exported_pod):
sudo bash start_mxexporter.sh -pm=1
示例4
若希望监控sGPU相关指标,用户需要
修改 mx-exporter.xxx.tgz 压缩包解压后的配置文件 mx-exporter/config/default-counters.csv,去掉sGPU相关指标前的注释符号
#来启用指标。启动容器时加特权模式,且需要将修改后的配置文件挂载到容器内。
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
将主机设备进行切分,具体操作参见《曦云® 系列通用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. 删除容器
操作步骤
执行以下命令,删除mx-exporter容器。
docker stop <mx-exporter_container-id> docker rm <mx-exporter_container-id>