Skip to content

CPUMonitoringTool is a real-time resource monitoring tool that tracks CPU and memory usage using C++ and logs the data. It offers both a command-line and a web interface for displaying the usage statistics, with real-time updates and interactive charts.

License

Notifications You must be signed in to change notification settings

ujjwalkran/CPUMonitoringTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Resource Monitoring Tool 🚀

A Linux-based real-time resource monitoring tool developed using C++ and Node.js. This project monitors CPU and memory usage, logs the data, and provides a web interface to visualize and track resource usage over time.

Features 🌟

  • Real-Time CPU and Memory Usage Monitoring: Continuously tracks system resources.
  • Logging: Logs CPU and memory statistics into a file for historical analysis.
  • Web Interface: Displays logs in real-time with a graphical representation of CPU and memory usage.
  • Chart Visualization: Visualizes CPU and memory usage with charts using Chart.js.
  • Cross-Platform: Can be run on Linux systems and accessed through a web interface.

Prerequisites ⚙️

Before you begin, make sure you have the following installed on your machine:

  • Linux System (Ubuntu or similar distribution)
  • C++ Compiler: For compiling the monitoring application.
  • Node.js: For the backend server that serves the logs and the web interface.
  • Git: For version control.

Installation 🛠️

1. Clone the repository:

git clone https://github.com/ujjwalkran/CPUMonitoringTool.git cd CPUMonitoringTool

2. Build the C++ Monitoring Application

Navigate to the src directory and compile the C++ files:

cd src make

3. Run the Resource Monitoring Tool

Start the monitoring tool:

../build/resource_monitor

This will begin logging CPU and memory usage to backend/logs/resource_log.txt.

4. Set up the Web Interface

Navigate to the frontend directory and install required dependencies:

cd frontend npm install

5. Run the Node.js Backend

Navigate to the root directory and start the Node.js server:

cd .. npm start

This will start a web server at http://localhost:3000.


Usage 🖥️

  • The backend (Node.js) will provide the resource logs through an API at http://localhost:3000/api/logs.
  • The frontend will fetch the logs every 2 seconds and display them on the webpage.
  • The logs include CPU and memory usage percentages, which are logged every second.

Technologies Used ⚡

  • C++: For CPU and memory monitoring logic.
  • Node.js: For backend server to serve the logs.
  • Chart.js: For visualizing CPU and memory usage as charts.
  • HTML/CSS: For the web interface.
  • JavaScript: For frontend functionality.

File Structure 🗂️

CPUMonitoringTool/ ├── backend │ ├── logs │ ├── node_modules │ ├── package-lock.json │ ├── package.json │ └── server.js ├── build ├── data │ └── usage_data.txt ├── frontend │ ├── index.html │ ├── script.js │ └── style.css ├── logs │ └── resource_log.txt ├── scripts │ ├── logs │ ├── start.sh │ └── stop.sh ├── src │ ├── C++ │ │ ├── cpu_monitor.cpp │ │ ├── cpu_monitor.h │ │ ├── logger.cpp │ │ ├── logger.h │ │ ├── main.cpp │ │ ├── memory_monitor.cpp │ │ └── memory_monitor.h ├── LICENSE └── README.md 

This will format your file structure properly in Markdown.

Contributing 🤝

We welcome contributions to improve the project! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit (git commit -am 'Add feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request to merge your changes.

License 📝

This project is licensed under the MIT License - see the LICENSE file for details.

About

CPUMonitoringTool is a real-time resource monitoring tool that tracks CPU and memory usage using C++ and logs the data. It offers both a command-line and a web interface for displaying the usage statistics, with real-time updates and interactive charts.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published