使用Prometheus监控瑞芯微NPU负载

简单高效的瑞芯微NPU负载Prometheus监控指标导出工具。

使用Prometheus监控瑞芯微NPU负载
封面图片由Midjourney生成

最近在项目开发中遇到一个问题。产品开发完成后进入测试阶段,需要验证程序的稳定性。测试周期至少24小时,且测试期间需要记录程序的内部状态,以及机器本身的一些性能参数,以便后期分析。

Prometheus监控机器性能本身不是太大的问题,大部分通用参数可以使用NodeExporter来导出。但是这台机器使用了瑞芯微RK3588 SoC。其中的NPU不属于通用硬件,NodeExporter不支持。需要自行开发exporter以支持Prometheus。

好在Prometheus官方提供了Rust开发SDK。于是我自己开发了用于将瑞芯微NPU负载数据导出为Prometheus格式的程序——RKNPU Exporter。

这里先放一张Grafana下的截图:

源码开放在GitHub:

GitHub - yinguobing/rknpu-exporter: Prometheus exporter for Rockchip NPU load metrics, written in Rust.
Prometheus exporter for Rockchip NPU load metrics, written in Rust. - GitHub - yinguobing/rknpu-exporter: Prometheus exporter for Rockchip NPU load metrics, written in Rust.

目前仅支持RK3588,因为我只有这一个型号的机器。

编译后的可执行文件大小约12MB,压缩包3MB左右,可以从GitHub下载。具体使用方法写在README里了。

如果你对原理感兴趣的话可以看看源码,非常简单。