first commit
This commit is contained in:
188
QUICKSTART.md
Normal file
188
QUICKSTART.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Quick Start Guide
|
||||
|
||||
## Installation
|
||||
|
||||
### Install Rust (if not already installed)
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
source $HOME/.cargo/env
|
||||
```
|
||||
|
||||
### Clone and Build
|
||||
```bash
|
||||
cd /home/snake/RustroverProjects/untitled
|
||||
|
||||
# Build everything
|
||||
cargo build --release
|
||||
|
||||
# Or build individual components
|
||||
cargo build --release -p procmon-tui # Terminal UI
|
||||
cargo build --release -p procmon-gui # Graphical UI
|
||||
```
|
||||
|
||||
## Running the Applications
|
||||
|
||||
### Terminal UI (Recommended for servers/SSH)
|
||||
```bash
|
||||
cargo run --release -p procmon-tui
|
||||
```
|
||||
|
||||
Or run the compiled binary:
|
||||
```bash
|
||||
./target/release/procmon-tui
|
||||
```
|
||||
|
||||
### Graphical UI (Recommended for desktop)
|
||||
```bash
|
||||
cargo run --release -p procmon-gui
|
||||
```
|
||||
|
||||
Or run the compiled binary:
|
||||
```bash
|
||||
./target/release/procmon-gui
|
||||
```
|
||||
|
||||
## First Time Setup
|
||||
|
||||
For best results, ensure the following packages are installed on your Linux system:
|
||||
|
||||
### Ubuntu/Debian
|
||||
```bash
|
||||
sudo apt-get install lm-sensors build-essential
|
||||
sudo sensors-detect --auto # Detect and configure thermal sensors
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
```bash
|
||||
sudo pacman -S lm_sensors base-devel
|
||||
sudo sensors-detect --auto
|
||||
```
|
||||
|
||||
### Fedora/RHEL
|
||||
```bash
|
||||
sudo dnf install lm_sensors gcc
|
||||
sudo sensors-detect --auto
|
||||
```
|
||||
|
||||
## TUI Quick Reference
|
||||
|
||||
Once the TUI is running:
|
||||
|
||||
1. **Navigate Tabs**
|
||||
- Press `1` for Dashboard (system overview)
|
||||
- Press `2` for Processes (detailed process list)
|
||||
- Press `3` for Network (network and disk I/O)
|
||||
- Press `4` for Alerts (misbehavior alerts)
|
||||
|
||||
2. **Process List Controls**
|
||||
- `↑/↓` arrows to navigate
|
||||
- `s` to cycle through sort columns
|
||||
- `a` to toggle ascending/descending
|
||||
- `f` to filter by misbehaving processes
|
||||
|
||||
3. **Exit**
|
||||
- Press `q` or `Ctrl+C` to quit
|
||||
|
||||
## GUI Quick Reference
|
||||
|
||||
The GUI uses tabs at the top:
|
||||
|
||||
1. **Dashboard**: Overview with graphs and gauges
|
||||
2. **Processes**: Click column headers to sort
|
||||
3. **Network & I/O**: Real-time network and disk statistics
|
||||
4. **Alerts**: Color-coded alerts (Red=Critical, Yellow=Warning, Blue=Info)
|
||||
|
||||
## Understanding the Alerts
|
||||
|
||||
The application automatically detects misbehaving processes:
|
||||
|
||||
- **Critical (Red)**: Immediate attention needed
|
||||
- CPU usage > 95%
|
||||
- Memory usage > 8GB
|
||||
|
||||
- **Warning (Yellow)**: Potential issues
|
||||
- CPU > 80% for more than 60 seconds
|
||||
- Memory > 2GB for more than 30 seconds
|
||||
- High disk I/O (>100 MB/s for 60 seconds)
|
||||
|
||||
- **Info (Blue)**: Informational alerts
|
||||
- Zombie processes
|
||||
- Other noteworthy events
|
||||
|
||||
## Monitoring Specific Metrics
|
||||
|
||||
### CPU Monitoring
|
||||
- **Dashboard Tab**: Shows overall CPU usage, per-core breakdown, and temperature
|
||||
- **Temperature**: Reads from `/sys/class/thermal/` or `/sys/class/hwmon/`
|
||||
|
||||
### GPU Monitoring
|
||||
- Currently supports AMD GPUs via sysfs (`/sys/class/drm/`)
|
||||
- Shows GPU usage, VRAM, and temperature
|
||||
- For NVIDIA GPUs, you may need to install additional drivers
|
||||
|
||||
### Network Monitoring
|
||||
- **Network Tab**: Shows all active network interfaces
|
||||
- Statistics are cumulative since boot
|
||||
- Includes packet counts and error rates
|
||||
|
||||
### Disk I/O
|
||||
- **Network Tab**: Shows per-device disk statistics
|
||||
- Read/write operations and bytes transferred
|
||||
- Filters out loop and ram devices for clarity
|
||||
|
||||
### Process Details
|
||||
- **Processes Tab**: Complete process information
|
||||
- Click or select a process for details
|
||||
- Sortable by CPU, Memory, Disk I/O, Name, or User
|
||||
|
||||
## Performance Tips
|
||||
|
||||
1. **Update Interval**: Default is 1 second. This balances responsiveness with CPU usage.
|
||||
|
||||
2. **Running as Root**: Some metrics require root access:
|
||||
```bash
|
||||
sudo ./target/release/procmon-tui
|
||||
```
|
||||
|
||||
3. **Filtering**: Use the filter feature (`f` in TUI) to focus on problematic processes
|
||||
|
||||
4. **Sorting**: Sort by CPU or Memory to quickly identify resource hogs
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### No GPU Detected
|
||||
- Check if `/sys/class/drm/` exists: `ls /sys/class/drm/`
|
||||
- Ensure GPU drivers are properly installed
|
||||
- NVIDIA users may need additional work (see README)
|
||||
|
||||
### No Temperature Readings
|
||||
- Run `sensors` command to check if thermal sensors are detected
|
||||
- Run `sudo sensors-detect` to configure
|
||||
- Check permissions on `/sys/class/thermal/`
|
||||
|
||||
### Permission Denied Errors
|
||||
- Some metrics require root access
|
||||
- Try running with `sudo`
|
||||
- Check that you can read `/proc/` entries
|
||||
|
||||
### High CPU Usage from Monitor
|
||||
- This is unusual; the monitor should use <1% CPU
|
||||
- Try increasing the update interval in the code
|
||||
- Check for runaway processes being monitored
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Explore the codebase in `procmon-core/` to customize detection rules
|
||||
- Modify alert thresholds in `procmon-core/src/detector.rs`
|
||||
- Add custom monitoring logic to suit your needs
|
||||
- Contribute improvements back to the project
|
||||
|
||||
## Getting Help
|
||||
|
||||
If you encounter issues:
|
||||
1. Check the main README.md for detailed information
|
||||
2. Review system logs for errors
|
||||
3. Ensure all dependencies are installed
|
||||
4. Verify Rust toolchain is up to date: `rustup update`
|
||||
|
||||
Enjoy monitoring your system!
|
||||
Reference in New Issue
Block a user