用Afterburner和Grafana监控PC性能

背景

监控Linux服务器性能已经有比较成熟的解决方案了:笔者用的是node_exporter+Prometheus+Grafana的经典三件套,整体效果令人满意:

整体架构 Grafana面板

同时笔者在使用PC时偶尔还会使用MSI Afterburner(以下简称Afterburner)来观察PC性能:

但Afterburner的监控功能并不易用(特别是在高分辨率下),如果能将监控数据在Grafana上呈现那就太棒了。RafhaanShah/grAfterburner这个开源项目做到了这点,其使用的是方案是collectd+Graphite+Grafana,整体用docker-compose启动。不过由于笔者已经有了另一套基于Prometheus的监控方案,所以笔者决定新造个轮子来复用现有的监控组件。

获取数据

Afterburner本体在官网下载并安装即可,但Afterburner不直接对外提供监控数据,而是通过一个叫MSI Afterburner Remote Server的小工具来做到。这个工具是为了在手机上监控PC性能而开发的,但因为种种原因官网已经不再提供其下载入口,最新版本也停留在2011年开发的V1.2。万幸的是我们可以从第三方网站下载到这个工具(google drivergithub)。

运行Afterburner后,点击MSI Afterburner Remote Server的主程序,该工具会在后台运行,并在托盘区域内展示密码、端口(默认82)等信息:

image-20220820162024028

在浏览器中打开127.0.0.1:82/mahm,输入用户名MSIAfterburner和上面的密码即可看到对应的监控数据:

image-20220820162505895

转换数据格式

MSI Afterburner Remote Server提供的监控数据是xml格式的,要想适配Prometheus,得做一层转换才行。笔者选用Golang实现一个HTTP正向代理小工具来完成这层转换,逻辑很简单:接收Prometheus发出的数据采集请求、从MSI Afterburner Remote Server处获取监控数据、将监控数据以metrics格式进行返回。

PlantUML diagram

该工具已在GitHub上开源,安装运行后可直接通过浏览器看到工具输出的结果:

1
2
3
$ go install github.com/wolf-joe/tools/cmd/afterburner_exporter@latest
$ afterburner_exporter -listen "0.0.0.0:8090" -target "127.0.0.1:82" -password "17cc95b4017d496f82"
2022/08/20 18:13:08 listen on :8090

image-20220820185928484

接入Prometheus

修改Prometheus的配置文件,让其定时抓取上一章的metrics数据,重启后可看到服务正常接入:

1
2
3
4
5
scrape_configs:
...
- job_name: "desktop"
static_configs:
- targets: ["localhost:9102"] # 这里将PC上的127.0.0.1:8090转发到了Prometheus服务器的:9102

image-20220820190351844

配置Grafana

Prometheus抓取到数据之后,在Grafana上添加对应面板:

image-20220821051812112

最终效果如下:

image-20220821051331042

大功告成!


用Afterburner和Grafana监控PC性能
https://www.yooo.ltd/2022/08/20/用Afterburner和Grafana监控PC性能/
作者
OrangeWolf
发布于
2022年8月20日
许可协议