用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 driver、github)。
运行Afterburner后,点击MSI Afterburner Remote Server
的主程序,该工具会在后台运行,并在托盘区域内展示密码、端口(默认82)等信息:
在浏览器中打开127.0.0.1:82/mahm
,输入用户名MSIAfterburner
和上面的密码即可看到对应的监控数据:
转换数据格式
MSI Afterburner Remote Server
提供的监控数据是xml格式的,要想适配Prometheus
,得做一层转换才行。笔者选用Golang实现一个HTTP正向代理小工具来完成这层转换,逻辑很简单:接收Prometheus
发出的数据采集请求、从MSI Afterburner Remote Server
处获取监控数据、将监控数据以metrics格式进行返回。
该工具已在GitHub上开源,安装运行后可直接通过浏览器看到工具输出的结果:
1 |
|
接入Prometheus
修改Prometheus的配置文件,让其定时抓取上一章的metrics数据,重启后可看到服务正常接入:
1 |
|
配置Grafana
Prometheus抓取到数据之后,在Grafana上添加对应面板:
最终效果如下:
大功告成!