通过Telegraf使用
本章节指导用户安装部署Telegraf软件,并通过Telegraf查看资源监测的相关指标,指标的相关说明可参见Telegraf指标说明章节。
使用Telegraf进行资源监测时,存在以下两种集成资源监测特性的方法:
Telegraf当前只支持监测Atlas 800T A2 训练服务器设备的相关指标。
源码集成
- (可选)没有创建MindCluster NPU Exporter的日志目录,需要依次执行以下命令,创建日志目录。
mkdir -m 750 /var/log/mindx-dl/npu-exporter chown hwMindX:hwMindX /var/log/mindx-dl/npu-exporter
- 在任意路径下(如“/home”),依次执行以下命令,拉取telegraf v1.26.0分支源码。
export GIT_SSL_NO_VERIFY=1 git clone -b v1.26.0 https://github.com/influxdata/telegraf.git -4
- 在任意路径下(如“/home/telegraf_npu_plugin”),依次执行以下命令,拉取MindCluster NPU Exporter源码。
export GIT_SSL_NO_VERIFY=1 git clone -b v6.0.0-RC2 https://gitee.com/ascend/ascend-npu-exporter.git
- 执行以下命令,将MindCluster NPU Exporter代码集成到Telegraf源码中。
cp -r /home/telegraf_npu_plugin/ascend-npu-exporter/plugins/inputs/npu /home/telegraf/plugins/inputs
- (可选)通过源码集成时,可以选择调整代码来配置日志。可以配置“/home/telegraf_npu_plugin/ascend-npu-exporter/plugins/inputs/npu/npu.go”代码中的func (npu *WatchNPU) Init() error函数中的hwlog.LogConfig。
func (npu *WatchNPU) Init() error { if npu.NpuLogPath == "" { npu.NpuLogPath = defaultLogPath } var hwLogConfig = &hwlog.LogConfig{ LogFileName: npu.NpuLogPath, ExpiredTime: hwlog.DefaultExpiredTime, CacheSize: defaultLogCacheSize, FileMaxSize: defaultLogFileSize, LogLevel: npu.NpuLogLevel, MaxAge: hwlog.DefaultMinSaveAge, MaxBackups: maxLogBackups} … } type LogConfig struct { // 日志文件路径,MindCluster NPU Exporter中的telegraf插件源码的默认路径为"/var/log/mindx-dl/npu-exporter/npu-plugin.log" LogFileName string // 仅写入Stdout,默认值为false OnlyToStdout bool // 仅写入文件,默认值为false OnlyToFile bool // 日志级别, -1:debug, 0:info, 1:warning, 2:error, 3:critical,默认值为0 LogLevel int // 单个日志文件大小(MB),MindCluster NPU Exporter中的telegraf插件源码默认值为2MB FileMaxSize int // MaxLineLength每行日志最大长度,默认值:256 MaxLineLength int // 最大备份日志文件数,在MindCluster NPU Exporter中的telegraf插件源码中设置为2 MaxBackups int // 备份日志文件的最大天数,默认值为2 MaxAge int // 是否需要压缩备份文件,默认值为false IsCompress bool // 日志缓存过期时间,默认值为1秒 ExpiredTime int // 日志缓存空间大小,默认值为2048 CacheSize int } - 执行以下命令,将MindCluster NPU Exporter注册到Telegraf。
cp -r /home/telegraf_npu_plugin/ascend-npu-exporter/plugins/inputs/all/npu.go /home/telegraf/plugins/inputs/all
- 执行以下命令,将Telegraf源码中“/home/telegraf/Makefile”里的“CGO_ENABLED=0”改为“CGO_ENABLED=1”。
sed -i s"/CGO_ENABLED=0/CGO_ENABLED=1/" /home/telegraf/Makefile
- 将以下字段添加到Telegraf源码的“/home/telegraf/telegraf/go.mod”文件。
module github.com/influxdata/telegraf go 1.20 require ( huawei.com/npu-exporter/v6 v6.0.0-RC2 cloud.google.com/go/bigquery v1.45.0 cloud.google.com/go/monitoring v1.8.0 … require ( cloud.google.com/go v0.107.0 // indirect cloud.google.com/go/compute v1.15.1 // indirect … ) replace huawei.com/npu-exporter/v6 => gitee.com/ascend/ascend-npu-exporter/v6 v6.0.0-RC2 - 在“/home/telegraf”路径下,执行以下命令,检查当前模块的依赖关系。
go mod tidy
环境中GO版本最低支持1.20版本。
- 在“/home/telegraf”路径下,执行以下命令,编译Telegraf。
make all
执行命令前,需要确保环境中已经提前安装好make和gcc工具。
- 编译后,Telegraf二进制文件会生成在“/home/telegraf/plugins/inputs/npu/”路径下,在该路径下执行以下命令,运行Telegraf,监测NPU信息。
./telegraf --config /home/telegraf/plugins/inputs/npu/sample.conf
sample.conf文件的inputs.npu字段支持的参数如下,详细的参数说明见表1。
[agent] interval="20s" flush_interval="20s" [[inputs.npu]] npu_log_path = "/var/log/mindx-dl/npu-exporter/npu-plugin.log" npu_log_level = 1 [[outputs.file]] files=["stdout"]
表1 参数说明 参数名
类型
默认值
取值说明
npu_log_path
string
/var/log/mindx-dl/npu-exporter/npu-plugin.log
NPU插件调用接口时记录日志的路径。
npu_log_level
int
0
日志级别:
- -1:debug
- 0:info
- 1:warning
- 2:error
- 3:critical
Telegraf运行成功后,回显示例如下,加粗部分即为监测的昇腾AI处理器的指标。2023-09-15T10:11:31Z I! Loading config file: ../plugin_test.conf 2023-09-15T10:11:31Z I! Starting Telegraf 1.26.0 2023-09-15T10:11:31Z I! Available plugins: 236 inputs, 9 aggregators, 27 processors, 22 parsers, 57 outputs, 2 secret-stores2023-09-15T10:11:31Z I! Loaded inputs: execd 2023-09-15T10:11:31Z I! Loaded aggregators: 2023-09-15T10:11:31Z I! Loaded processors: 2023-09-15T10:11:31Z I! Loaded secretstores: 2023-09-15T10:11:31Z I! Loaded outputs: file 2023-09-15T10:11:31Z I! Tags enabled: host=xxx 2023-09-15T10:11:31Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"xxx", Flush Interval:10s 2023-09-15T10:11:31Z I! [inputs.execd] Starting process: /xxx/npu-exporter [-platform=Telegraf -poll_interval=1m] Ascend910-0,host=xxx npu_chip_link_speed=104857600000i,npu_chip_roce_rx_cnp_pkt_num=0i,npu_chip_roce_unexpected_ack_num=0i,npu_chip_optical_vcc=3245.1,npu_chip_optical_rx_power_1=0.8585,npu_chip_info_hbm_used_memory=0i,npu_chip_mac_rx_pause_num=0i,npu_chip_roce_tx_all_pkt_num=0i,npu_chip_roce_tx_cnp_pkt_num=0i,npu_chip_info_temperature=46,npu_chip_mac_rx_bad_pkt_num=0i,npu_chip_roce_tx_err_pkt_num=0i,npu_chip_optical_rx_power_3=0.8466,npu_chip_optical_rx_power_0=0.7933,npu_chip_info_network_status=0i,npu_chip_mac_rx_pfc_pkt_num=0i,npu_chip_mac_tx_bad_pkt_num=0i,npu_chip_roce_rx_all_pkt_num=0i,npu_chip_mac_rx_bad_oct_num=0i,npu_chip_optical_tx_power_1=0.9162,npu_chip_info_utilization=0,npu_chip_info_power=73.9000015258789,npu_chip_info_link_status=1i,npu_chip_info_bandwidth_rx=0,npu_chip_mac_tx_pfc_pkt_num=0i,npu_chip_roce_rx_err_pkt_num=0i,npu_chip_roce_verification_err_num=0i,npu_chip_optical_state=1i,npu_chip_info_bandwidth_tx=0,npu_chip_mac_tx_bad_oct_num=0i,npu_chip_roce_out_of_order_num=0i,npu_chip_roce_qp_status_err_num=0i,npu_chip_optical_rx_power_2=0.855,npu_chip_optical_tx_power_0=0.9095,npu_chip_info_hbm_utilization=0,npu_chip_link_up_num=2i,npu_chip_info_health_status=1i,npu_chip_mac_tx_pause_num=0i,npu_chip_roce_new_pkt_rty_num=0i,npu_chip_optical_temp=53,npu_chip_optical_tx_power_2=1.0342,npu_chip_optical_tx_power_3=0.9715 1694772754612200641
二进制集成
- (可选)没有创建MindCluster NPU Exporter的日志目录,需要依次执行以下命令,创建日志目录。
mkdir -m 750 /var/log/mindx-dl/npu-exporter chown hwMindX:hwMindX /var/log/mindx-dl/npu-exporter
- 从MindX DL社区获取MindCluster NPU Exporter软件包,并从中解压出MindCluster NPU Exporter二进制文件npu-exporter,并上传至环境任意路径(如“/home/npu_plugin”)。
- 执行以下命令,创建npu_plugin.conf文件。
vi npu_plugin.conf
在文件中添加MindCluster NPU Exporter二进制文件路径,示例如下。
[[inputs.execd]] command = ["/home/npu_plugin/npu-exporter", "-platform=Telegraf", "-poll_interval=10s"] signal = "none" [[outputs.file]] files=["stdout"]
command字段的输入参数说明如表2所示。
- 执行以下命令,运行Telegraf。
./telegraf --config npu_plugin.conf
Telegraf运行成功后,回显示例如下,加粗部分即为监测的昇腾AI处理器的指标。2023-09-15T10:11:31Z I! Loading config file: ../plugin_test.conf 2023-09-15T10:11:31Z I! Starting Telegraf 1.26.0 2023-09-15T10:11:31Z I! Available plugins: 236 inputs, 9 aggregators, 27 processors, 22 parsers, 57 outputs, 2 secret-stores2023-09-15T10:11:31Z I! Loaded inputs: execd 2023-09-15T10:11:31Z I! Loaded aggregators: 2023-09-15T10:11:31Z I! Loaded processors: 2023-09-15T10:11:31Z I! Loaded secretstores: 2023-09-15T10:11:31Z I! Loaded outputs: file 2023-09-15T10:11:31Z I! Tags enabled: host=xxx 2023-09-15T10:11:31Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"xxx", Flush Interval:10s 2023-09-15T10:11:31Z I! [inputs.execd] Starting process: /xxx/npu-exporter [-platform=Telegraf -poll_interval=1m] Ascend910-0,host=xxx npu_chip_link_speed=104857600000i,npu_chip_roce_rx_cnp_pkt_num=0i,npu_chip_roce_unexpected_ack_num=0i,npu_chip_optical_vcc=3245.1,npu_chip_optical_rx_power_1=0.8585,npu_chip_info_hbm_used_memory=0i,npu_chip_mac_rx_pause_num=0i,npu_chip_roce_tx_all_pkt_num=0i,npu_chip_roce_tx_cnp_pkt_num=0i,npu_chip_info_temperature=46,npu_chip_mac_rx_bad_pkt_num=0i,npu_chip_roce_tx_err_pkt_num=0i,npu_chip_optical_rx_power_3=0.8466,npu_chip_optical_rx_power_0=0.7933,npu_chip_info_network_status=0i,npu_chip_mac_rx_pfc_pkt_num=0i,npu_chip_mac_tx_bad_pkt_num=0i,npu_chip_roce_rx_all_pkt_num=0i,npu_chip_mac_rx_bad_oct_num=0i,npu_chip_optical_tx_power_1=0.9162,npu_chip_info_utilization=0,npu_chip_info_power=73.9000015258789,npu_chip_info_link_status=1i,npu_chip_info_bandwidth_rx=0,npu_chip_mac_tx_pfc_pkt_num=0i,npu_chip_roce_rx_err_pkt_num=0i,npu_chip_roce_verification_err_num=0i,npu_chip_optical_state=1i,npu_chip_info_bandwidth_tx=0,npu_chip_mac_tx_bad_oct_num=0i,npu_chip_roce_out_of_order_num=0i,npu_chip_roce_qp_status_err_num=0i,npu_chip_optical_rx_power_2=0.855,npu_chip_optical_tx_power_0=0.9095,npu_chip_info_hbm_utilization=0,npu_chip_link_up_num=2i,npu_chip_info_health_status=1i,npu_chip_mac_tx_pause_num=0i,npu_chip_roce_new_pkt_rty_num=0i,npu_chip_optical_temp=53,npu_chip_optical_tx_power_2=1.0342,npu_chip_optical_tx_power_3=0.9715 1694772754612200641