ProcMonitor is a program written in C++ that monitors your system utilization by reading Linux's /proc/stat file. The client samples the metrics from that file, serializes them, then sends it to the server over TCP, before the server deserializes it.
To build this, you must be on a Linux-based system with make installed.
First, clone the GitHub repository recursively and cd into it.
git clone https://github.com/Syntax-Sculptor/ProcMonitor.git --recursive
cd ProcMonitor
To run the program, you will need two separate terminals.
On your first terminal, initialize the server:
make server
./build/server
On the second, initialize the client:
make proc_monitor
./build/proc_monitor
If you wish to run unit tests:
make test
- Implement SQLite persistence for collected metrics
- Implement additional system metrics
- Add Docker support
- Do one last cleanup pass for code and improve TCP error handling.
I do not accept contributions for this repository. However, you are free to fork it and make your own changes.
As this project was made to reflect my skills and to learn new things, AI was not used to generate the primary code used in ProcMonitor. However, AI was used for some minor assistance. For transparency sake, AI was used for:
- Generating a boilerplate Makefile for me to modify.
- Providing sample structs for test cases I provided so I do not manually type each field out.
- Converting some SampleBuffer structs into an array of bytes for various test cases.