Linux性能监控系统,支持分布式部署。
-
对CPU状态、系统负载、软中断、内存信息以及网络接口状态进行监控,数据每三秒刷新一次;
-
以gRPC的方式实现前后端分离,支持在非桌面环境(服务器环境)运行,并可接入不同的前端。
-
提供dockerfile构建镜像,方便快速部署环境;
-
提供C++ SDK,方便嵌入自己的客户端和实现自己的服务端;
-
提供Linux桌面客户端,遵循freedesktop规范,可以托管给systmed,实现自动部署。
- 分布式的性能监控系统,支持CPU状态、系统负载、软中断、内存信息以及网络接口状态的监控;
- 使用dockerfile指定相应的cmake,grpc,proto等源码和依赖,构建整个项目环境,易于在多台服务器上部署环境,并编写容器操作的脚本指令,易于启动操作项目所依赖的环境。
- 使用工厂方法实现monitor模块,监控相应的CPU状态、系统负载、软中断、内存信息、网络接口状态,易于为之后扩展更多系统监控;
- 使用protobuf序列化协议,构建项目的数据结构并创建IDL文件;
- 通过grpc框架,构建出相应的server, client,并考虑为了降低耦合性,项目每个模块相互独立,可拆解,只通过调用grpc服务来进行远程连接;
- 为了模拟出真实的性能问题,使用stress工具进行模拟压测,分析相应时刻服务器的cpu状况和中断状况。
1、部署数据采集服务:monitord
执行由client/publisher构建来的monitord即可。
2、部署数据转发服务:monitor-broker
执行由broker/cpp或broker/go构建来的monitor-broker即可。
3、如果需要使用docker:
构建镜像:
cd docker/images
docker build -t monitor:1.0 --network host -f monitor.dockerfile .
进入docker容器:
./monitor_docker_run.sh
./monitor_docker_into.sh
执行由client/frontend构建而来的monitor-ui即可。
- 心跳机制
- 定时任务、数据上报