使用InfluxDB重新构想nmon

导航到

IBM工程师Nigel Griffiths在20世纪90年代创建了nmon,用于监控AIX操作系统的性能数据。自从最初发布以来,Griffiths重新审视并改进了nmon。例如,他为Linux构建了一个开源版本。尽管计算的本质发生了剧烈变化,存储、内存和计算能力的指数级增长,但直到2018年,Griffiths才寻求完全重写这个工具,并将其与现代计算机系统对齐。

nmon限制

旧版本的nmon在屏幕上显示缩略数据或将它保存到CSV文件中,用户可以使用这些文件进行绘图和分析。但用户必须等到小时结束或一天结束,才能对这些文件进行绘图。因此,这根本不是实时。Griffiths还为自己创建了一种数据格式,他将其描述为“古怪”。虽然这个工具为用户提供了一些有用的信息,但使用起来并不总是那么容易。尽管如此,它仍然是一款备受欢迎的工具,下载量超过100万次。

重写nmon

从2018年开始,Griffiths从零开始重新构建了nmon。他确定了工具需要现代化的四个方面:1. 文件格式,2. 工具收集的度量集,3. 数据存储,4. 数据可视化。

前两个方面非常直接。他将工具的独特文件格式替换为标准的JSON和InfluxDB行协议。他将工具收集的系统性能统计指标的数量从有限的集合扩展到几乎所有可能的统计指标。

他询问了关于工具收集的所有时间序列数据的数据库和绘图选项,并迅速确定了InfluxDB和Grafana分别。实际上,nmon有两种不同的版本,每个版本都有不同的架构来将数据发送到InfluxDB。

Updated nmon Architecture

其中一种版本,njmon,使用JSON文件格式,并利用Python守护进程和InfluxDB Python客户端库将数据发送到InfluxDB。另一种版本,nimon,使用InfluxDB行协议作为其文件格式,并使用Telegraf收集和发送这些数据到InfluxDB。

数据一旦进入InfluxDB,用户就可以使用Grafana实时绘图。这些更新使得nmon在现代技术堆栈中变得更加强大和有用。

想了解更多关于nmon及其如何使用InfluxDB的信息,请查看完整的案例研究