项目概述:该项目是一个基于分布式架构的 Linux 性能分析监控系统,旨在实时监控多台服务器的 CPU 状态、系统负载、软中断、内存和网络等性能指标,并提供直观的 UI 界面展示监控数据。
以下是该项目的关键特点和主要模块:
- Docker模块
使用 Dockerfile 构建项目环境,包括 CMake、gRPC、protobuf等源码和依赖项。
实现容器操作脚本指令,简化项目在多台服务器上的部署和环境管理。
- Monitor 模块
设计采用工厂方法模式,定义了抽象的 Monitor 类作为接口,可方便扩展不同系统监控功能。
实现 CPU 状态、系统负载、软中断、内存、网络等监控功能。
使用 stress 工具进行模拟压力测试,以模拟真实性能问题。
- gRPC 框架
构建 Server 和 Client ,使用 gRPC 进行远程连接和通信。
在服务器上部署 Server,Client 生成库供 Monitor 模块和 Display 模块调用。
- Protocol Buffers(protobuf)
使用 protobuf序列化协议构建项目的数据结构,用于在 Server 和 Client 之间传输数据。
- Display 模块
构建 UI 界面和 Data Model 两个部分。
使用 Qt 框架创建用户界面,包括 QWidget、QTableView、QStackedLayout 和 QPushButton 等组件。
通过继承 QAbstractTableModel ,实现多个数据模型(例如cpu_model、softirq_model、mem_model),每 3 秒刷新一次数据。
该项目的目标是提供一个高效可靠的分布式 Linux 性能分析监控系统,可应用于大规模服务器集群。通过使用C++、Docker、gRPC、Protocol Buffers、CMake 和 Qt 等技术,实现了模块化、可拓展和易于部署的架构。