A comprehensive system monitoring tool for tracking machine health metrics and performance indicators
Find a file
m1ngsama 5529c0d573 Release v1.0.0: Complete system monitoring solution
Major improvements and features:
- Integrate all monitoring modules (config, alert, logger, temperature)
- Add comprehensive error handling throughout codebase
- Fix data exporter directory creation issue
- Improve process monitor CPU accuracy with proper intervals
- Fix logger file handle management

New features:
- Alert system with configurable thresholds
- Automatic logging to daily log files
- Data export to JSON/CSV formats
- Configuration management via config.json
- Temperature monitoring support

CI/CD:
- Add GitHub Actions workflows for automated testing
- Add release workflow for automatic package building
- Multi-platform testing (Linux, macOS, Windows)
- Python 3.8-3.12 compatibility testing

Package distribution:
- Add setup.py and pyproject.toml for PyPI distribution
- Add MANIFEST.in for proper file inclusion
- Add comprehensive CHANGELOG.md
- Update README with full documentation

Bug fixes:
- Fix ResourceWarning in logger
- Add ZombieProcess exception handling
- Improve error handling in all metric collection methods
2025-11-25 16:12:46 +08:00
.github/workflows Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
.gitignore Add data export functionality (JSON and CSV) 2024-12-08 15:45:00 +08:00
alert_system.py Implement alert system for threshold monitoring 2024-12-02 14:30:00 +08:00
CHANGELOG.md Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
config.json Add configuration file support 2024-11-20 13:00:00 +08:00
config_manager.py Add configuration file support 2024-11-20 13:00:00 +08:00
data_exporter.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
LICENSE Add MIT license 2024-12-28 15:45:00 +08:00
logger.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
MANIFEST.in Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
process_monitor.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
pyproject.toml Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
README.md Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
requirements.txt Initial commit: project structure and basic tracker 2024-11-01 09:00:00 +08:00
setup.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
temperature_monitor.py Add temperature sensor monitoring 2024-11-08 16:20:00 +08:00
test_export.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00
test_tracker.py Add unit tests for core functionality 2024-12-26 13:00:00 +08:00
tracker.py Release v1.0.0: Complete system monitoring solution 2025-11-25 16:12:46 +08:00

Tracker

A comprehensive system monitoring tool for tracking various machine health metrics and performance indicators.

CI Release License: MIT

Features

  • CPU Monitoring: Real-time CPU usage percentage tracking
  • Memory Utilization: Track memory usage with detailed statistics
  • Disk I/O Statistics: Monitor disk usage and I/O operations
  • Network Traffic Analysis: Track network bytes sent/received
  • Process Monitoring: View top processes by CPU usage
  • Temperature Sensors: Monitor system temperatures (if available)
  • Alert System: Configurable thresholds for CPU, memory, and disk alerts
  • Logging: Automatic logging of all metrics to daily log files
  • Data Export: Export monitoring data to JSON or CSV formats
  • Configuration: Customizable settings via JSON config file

Installation

From PyPI (coming soon)

pip install system-tracker

From Source

git clone https://github.com/m1ngsama/tracker.git
cd tracker
pip install -r requirements.txt

Usage

Basic usage:

python tracker.py

Continuous monitoring mode:

python tracker.py --continuous --interval 5

Command line options:

  • -c, --continuous: Run in continuous monitoring mode
  • -i, --interval: Set update interval in seconds (default: 5)

Configuration

The config.json file allows you to customize the tracker behavior:

{
  "update_interval": 5,
  "display": {
    "show_cpu": true,
    "show_memory": true,
    "show_disk": true,
    "show_network": true,
    "show_processes": true,
    "show_temperatures": true
  },
  "process_limit": 5,
  "alert_thresholds": {
    "cpu_percent": 80,
    "memory_percent": 85,
    "disk_percent": 90
  }
}

Output

The tracker provides:

  • Console Output: Real-time metrics displayed in the terminal
  • Log Files: Daily logs stored in logs/ directory
  • Alerts: Visual and logged warnings when thresholds are exceeded
  • Export Data: Optional data export to exports/ directory

Requirements

  • Python 3.8+
  • psutil
  • GPUtil (for GPU monitoring)
  • requests

Development

Running Tests

python test_tracker.py

Project Structure

tracker/
├── tracker.py              # Main application
├── process_monitor.py      # Process monitoring module
├── temperature_monitor.py  # Temperature sensors module
├── config_manager.py       # Configuration management
├── alert_system.py         # Alert and threshold management
├── logger.py              # Logging functionality
├── data_exporter.py       # Data export utilities
├── config.json            # Configuration file
└── requirements.txt       # Python dependencies

CI/CD

This project uses GitHub Actions for:

  • Continuous Integration: Automated testing on multiple OS and Python versions
  • Automated Releases: Automatic package building and release creation on version tags
  • Code Quality: Linting and syntax checking

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details

Author

m1ngsama

Acknowledgments

  • Built with psutil for cross-platform system monitoring