{"id":25240406,"url":"https://github.com/mohamedmostafa010/monitormetrics","last_synced_at":"2026-04-10T11:31:18.373Z","repository":{"id":265489229,"uuid":"896107634","full_name":"MohamedMostafa010/MonitorMetrics","owner":"MohamedMostafa010","description":"This repository contains a system monitoring tool designed to generate detailed performance and health reports for a Linux-based system. The tool provides a flexible setup, allowing users to run it either locally or in a Docker container, and supports generating reports in Markdown and HTML formats for easy analysis.","archived":false,"fork":false,"pushed_at":"2025-02-10T22:43:29.000Z","size":821,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-22T07:35:40.555Z","etag":null,"topics":["bash","bash-script","bash-scripting","docker","docker-container","docker-image","dockerfile","linux","linux-shell","operating-system","operating-systems","python","python3","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MohamedMostafa010.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-29T15:01:37.000Z","updated_at":"2025-06-03T01:02:29.000Z","dependencies_parsed_at":"2025-02-10T23:22:44.570Z","dependency_job_id":"9582d298-38a5-4a8a-8fb9-62fa58f170f3","html_url":"https://github.com/MohamedMostafa010/MonitorMetrics","commit_stats":null,"previous_names":["mohamedmostafa010/os_project_12th"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MohamedMostafa010/MonitorMetrics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedMostafa010%2FMonitorMetrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedMostafa010%2FMonitorMetrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedMostafa010%2FMonitorMetrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedMostafa010%2FMonitorMetrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MohamedMostafa010","download_url":"https://codeload.github.com/MohamedMostafa010/MonitorMetrics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedMostafa010%2FMonitorMetrics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31641114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-script","bash-scripting","docker","docker-container","docker-image","dockerfile","linux","linux-shell","operating-system","operating-systems","python","python3","shell"],"created_at":"2025-02-11T19:13:59.226Z","updated_at":"2026-04-10T11:31:18.338Z","avatar_url":"https://github.com/MohamedMostafa010.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OS Performance Monitoring \u0026 Statistics Project\n\n# System Monitoring Project \n\nThis project delivers a comprehensive system monitoring solution using a **Zenity-based graphical user interface (GUI)**, designed for ease of use and adaptability. It enables users to monitor system performance, hardware health, and generate detailed reports with a **user-friendly dashboard**. To ensure portability and compatibility across various platforms, the project is fully containerized with Docker, simplifying deployment and usage on diverse operating systems and hardware configurations.\n\n## Features\n- Real-time monitoring of **CPU, memory, disk, and network metrics**.\n- **Alerts** for critical conditions like high CPU/memory usage or low disk space.\n- **User-friendly GUI** powered by Zenity for report viewing and system monitoring.\n- Generates detailed reports in **Markdown and HTML formats**.\n- **Dockerized** for portability and reproducibility.\n\n## Requirements\n\n### For Direct Execution (Without Docker)\nEnsure the following packages are installed:\n- `sysstat`\n- `dos2unix`\n- `python3`\n- `python3-pip`\n- `lm-sensors`\n- `smartmontools`\n- `zenity`\n- `pandoc`\n- `curl`\n- `net-tools`\n- `iproute2`\n- `x11-utils`\n- `lshw`\n- `xdg-utils`\n- `chromium`\n- `mesa-utils`\n- `bc`\n- `CUDA Toolkit 11.8`\n- `rocm-smi`\n\nInstall these packages on Debian/Ubuntu-based systems with:\n```bash\nsudo apt-get update\nsudo apt-get update \u0026\u0026 sudo apt-get install -y sysstat lm-sensors smartmontools zenity pandoc curl net-tools iproute2 x11-utils lshw xdg-utils chromium mesa-utils bc rocm-smi dos2unix python3 python3-pip\nwget https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb\nsudo dpkg -i cuda-keyring_1.0-1_all.deb\nsudo apt-get update \u0026\u0026 apt-get install -y\ncuda-toolkit-11-8\n```\n\n### For Docker Execution\n- Visit **https://www.docker.com/** to build and run containers.\n- Docker Compose (optional, for orchestration).\n\n## Installation and Setup\n\n### Running Locally (Without Docker) on VMs or WSL 2\n\n1- Ensure that above requirements are installed.\n\n2- Clone the repository:\n```bash\ngit clone https://github.com/MohamedMostafa010/MonitorMetrics.git\ncd MonitorMetrics\n```\n\n3- Make the script executable:\n```bash\nchmod +x monitor.sh\n```\n\n4- Run the script (one of the two ways):\n```bash\n./monitor.sh\nbash monitor.sh\n```\n\n### Running with Docker on VMs or WSL 2\n1- Install Docker on Linux (You can also install Docker by following the instructions on the official [**Docker Website**](https://docs.docker.com/engine/install/)):\n```bash\nsudo apt-get update\nsudo apt-get install -y docker.io\n```\n\n2- Or on Windows, [**Docker Website**](https://docs.docker.com/engine/install/):\n- After installing **Docker Desktop** from the website above, make sure it's running. Docker Desktop provides a Docker daemon that WSL can access.\n- Configure **WSL Integration** with Docker Desktop:\n  - Open **Docker Desktop**.\n  - Go to Settings (the **gear icon in the top-right**).\n  - In the General tab, ensure that **Enable the experimental WSL 2-based engine is checked**.\n  - Go to the **Resources tab** and then the **WSL Integration section**.\n  - Ensure that your WSL distributions (like **Ubuntu**) are enabled to use Docker.\n  - Make sure your WSL distributions (e.g., Ubuntu) are selected. You can toggle on the distributions you want to use Docker with (typically, you’ll select the one you’re using, e.g., Ubuntu).\n  - Click **Apply \u0026 Restart** if you made any changes.\n- Check Docker Status in WSL:\n```bash\ndocker --version\ndocker info\n```\n\n3- Build the Docker image:\n```bash\ndocker build -t system-monitor .\n```\n\n4- Controlling for the X server in a Unix/Linux environment:\n```bash\nxhost +local:docker\n```\n\n2- Run the container:\n```bash\ndocker run --rm -it --name system-monitor --privileged --device=/dev/sda --env DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --net=host --gpus all -v /home/user/system_logs:/app/monitoring_logs -v /mnt/c:/mnt/c -v /mnt/d:/mnt/d -v /mnt/e:/mnt/e -v /proc:/host_proc --cpus=\"4\" system-monitor \u003e /dev/null 2\u003e\u00261\n```\n\n4- Running with Docker Compose (Optional)\n- Start the service:\n```bash\ndocker-compose up\n```\n- Stop the service:\n```bash\ndocker-compose down\n```\n\n## How to Use\n\n### Launch the Dashboard\n**- The script opens a Zenity-based GUI with three options:**\n  - **Run System Monitoring:** Collects metrics and generates a report.\n  - **View Historical Reports:** Browse and view saved reports.\n  - **Exit:** Closes the application.**\n\n**- View Alerts:**\n  - Real-time alerts for critical conditions are displayed as Zenity notifications.\n\n**- View Reports:**\n  - Reports are saved in the monitoring_logs directory. Select a report through the GUI to view details.\n\n# Screenshots and Visualizations\n![Dashboard](assets/Picture1.png)\n\u003cimg src=\"assets/Picture2.png\" width=\"350\" height=\"350\"/\u003e\n\u003cimg src=\"assets/Picture3.png\" width=\"350\" height=\"350\"/\u003e\n\u003cimg src=\"assets/Picture4.png\" width=\"350\" height=\"350\"/\u003e\n\u003cimg src=\"assets/Picture5.png\" width=\"300\" height=\"200\"/\u003e\n\u003cimg src=\"assets/Picture6.png\" width=\"300\" height=\"200\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedmostafa010%2Fmonitormetrics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedmostafa010%2Fmonitormetrics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedmostafa010%2Fmonitormetrics/lists"}