开发者
资源

通过Telegraf使用

本章节指导用户安装部署Telegraf软件,并通过Telegraf查看资源监测的相关指标,指标的相关说明可参见Telegraf指标说明章节。

使用Telegraf进行资源监测时,存在以下两种集成资源监测特性的方法:

  • 源码集成:适用于维护了一套Telegraf自定义源码的用户。
  • 二进制集成:适用于已经安装部署Telegraf,不想重新编译安装的用户。

Telegraf当前只支持监测Atlas 800T A2 训练服务器设备的相关指标。

源码集成

更多源码集成的信息可以参见官方文档

  1. (可选)没有创建MindCluster NPU Exporter的日志目录,需要依次执行以下命令,创建日志目录。
    mkdir -m 750 /var/log/mindx-dl/npu-exporter
    chown hwMindX:hwMindX /var/log/mindx-dl/npu-exporter
  2. 在任意路径下(如“/home”),依次执行以下命令,拉取telegraf v1.26.0分支源码。
    export GIT_SSL_NO_VERIFY=1
    git clone -b v1.26.0 https://github.com/influxdata/telegraf.git -4
  3. 在任意路径下(如“/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
  4. 执行以下命令,将MindCluster NPU Exporter代码集成到Telegraf源码中。
    cp -r /home/telegraf_npu_plugin/ascend-npu-exporter/plugins/inputs/npu /home/telegraf/plugins/inputs
  5. (可选)通过源码集成时,可以选择调整代码来配置日志。可以配置“/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
    }
  6. 执行以下命令,将MindCluster NPU Exporter注册到Telegraf
    cp -r /home/telegraf_npu_plugin/ascend-npu-exporter/plugins/inputs/all/npu.go /home/telegraf/plugins/inputs/all
  7. 执行以下命令,将Telegraf源码中“/home/telegraf/Makefile”里的“CGO_ENABLED=0”改为“CGO_ENABLED=1”。
    sed -i s"/CGO_ENABLED=0/CGO_ENABLED=1/" /home/telegraf/Makefile
  8. 将以下字段添加到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
  9. “/home/telegraf”路径下,执行以下命令,检查当前模块的依赖关系。
    go mod tidy

    环境中GO版本最低支持1.20版本。

  10. “/home/telegraf”路径下,执行以下命令,编译Telegraf
    make all

    执行命令前,需要确保环境中已经提前安装好make和gcc工具。

  11. 编译后,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

二进制集成

  1. (可选)没有创建MindCluster NPU Exporter的日志目录,需要依次执行以下命令,创建日志目录。
    mkdir -m 750 /var/log/mindx-dl/npu-exporter
    chown hwMindX:hwMindX /var/log/mindx-dl/npu-exporter
  2. MindX DL社区获取MindCluster NPU Exporter软件包,并从中解压出MindCluster NPU Exporter二进制文件npu-exporter,并上传至环境任意路径(如“/home/npu_plugin”)。
  3. 执行以下命令,创建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所示。

    表2 参数说明

    参数名

    类型

    默认值

    取值说明

    -platform

    string

    Prometheus

    指定对接平台,取值如下:

    • Prometheus:对接Prometheus
    • Telegraf:对接Telegraf

    -poll_interval

    duration(int)

    1

    Telegraf数据上报的间隔时间,此参数在对接Telegraf平台时才起作用,即需要指定-platform=Telegraf时才生效,否则该参数不生效。

  4. 执行以下命令,运行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