观澜刚跑起来那阵子,看板上主要展示整机平均 CPU 占用率、总内存和总磁盘空间。用了一两个礼拜我就发现这远远不够解渴——比如双路服务器或者插了好几块盘的工作站,总占用看着只有 30%,但到底是不是某块 NVMe 固态正在高温掉速?多网口软路由和宿主机里,到底是哪张物理网卡在跑满带宽?机箱里哪把风扇停转了?

要想把硬件状态看透,必须把探针从“整机汇总”往下扎到“每个硬件实例”。

深入到单块盘、单张卡与单把风扇的实例级探针

从 2026 年 7 月中旬的 v0.1.100(Commit 6d728fc)到 7 月 27 日的 v0.2.0(Commit 1061514),我对采集层做了一次彻底的扩充。在 Windows 端,我集成了 LibreHardwareMonitor、PawnIO 底层驱动以及 nvidia-smi,把采集粒度拆细到了每一颗物理 CPU、每一块硬盘、每一张网卡、每一块 GPU 乃至每一把机箱风扇。

这样一来,每块硬件的实时频率、温度、显存占用和读写吞吐率都能独立成图。到了后来的 v0.2.200,我又专门排查了核显与独显混用时的统计偏差,修正了核显共享显存的口径,并把 CPU 封装温度(Package Temp)的映射关系对齐,免得不同主板报出来的传感器名字对不上号。

300 多个小版本高频迭代与 Electron 桌面端收敛

在打磨底层探针的同时,桌面端该用什么技术栈也经历了一段高频试错。最开始我想走原生路线,Windows 端用 C# WinUI 写,Linux 端用 GTK4 写。但真维护起来才体会到双端同步改 UI 的痛苦:哪怕只是加一个温度折线图或者改个列表字段,都得在两套完全不同的框架里各写一遍。

于是在随后两个月、累计 300 多个小版本的密集迭代里,我逐步把桌面端收敛到了统一的 Electron 架构(apps/desktop),并配齐了 Windows、Linux、macOS 全平台自动打包流水线。一套前端代码同时跑在所有桌面系统上,我终于可以把精力省下来去抠探针精度和交互细节了。