117 lines
No EOL
3.7 KiB
Markdown
117 lines
No EOL
3.7 KiB
Markdown
# OGP Agent Resource Stats Integration - Implementation Complete
|
|
|
|
## Summary
|
|
|
|
Successfully integrated the standalone Python collector.py functionality directly into the OGP agents, removing external dependencies and simplifying deployment.
|
|
|
|
## What Was Implemented
|
|
|
|
### 1. Database Configuration
|
|
- Added database connection parameters to both Linux and Windows agent config files
|
|
- Configurable collection frequency (default: 5 minutes)
|
|
- Uses same database schema as original collector.py
|
|
|
|
### 2. Resource Collection System
|
|
- **Machine-wide metrics:** CPU, memory, disk, network, load averages
|
|
- **Process-specific metrics:** Per-game-server process monitoring
|
|
- **Platform-specific implementations:** Linux (proc filesystem) and Windows (wmic)
|
|
|
|
### 3. Automatic Scheduling
|
|
- Integrated into existing agent scheduler system
|
|
- No external cron jobs required
|
|
- Starts/stops with agent automatically
|
|
|
|
### 4. Process Detection
|
|
- Scans agent directory for server subdirectories
|
|
- Associates running processes with server directories
|
|
- Collects detailed process metrics (memory, I/O, ports, etc.)
|
|
|
|
## Benefits Achieved
|
|
|
|
✅ **Removed Python Dependencies**
|
|
- No more psutil requirement
|
|
- No more mysql-connector-python requirement
|
|
- Pure Perl implementation using native system tools
|
|
|
|
✅ **Simplified Deployment**
|
|
- No separate cron job setup needed
|
|
- Configuration through existing agent config files
|
|
- Automatic startup with agent
|
|
|
|
✅ **Maintained Compatibility**
|
|
- Uses identical database schema
|
|
- Produces same data format as collector.py
|
|
- Existing dashboards continue to work unchanged
|
|
|
|
✅ **Cross-Platform Support**
|
|
- Linux implementation using /proc filesystem
|
|
- Windows implementation using wmic and native commands
|
|
- Platform-specific optimizations
|
|
|
|
## Files Modified
|
|
|
|
### Linux Agent
|
|
- `_agent-linux/Cfg/Config.pm` - Added database configuration
|
|
- `_agent-linux/ogp_agent.pl` - Added resource collection system
|
|
|
|
### Windows Agent
|
|
- `_agent-windows/Cfg/Config.pm` - Added database configuration
|
|
- `_agent-windows/ogp_agent.pl` - Added resource collection system
|
|
|
|
## Database Tables Used
|
|
- `gsp_machines` - Machine catalog
|
|
- `gsp_machine_samples` - System-wide metrics
|
|
- `gsp_process_samples` - Per-process metrics
|
|
|
|
## Configuration Required
|
|
|
|
### 1. Install Perl Database Modules
|
|
```bash
|
|
# Ubuntu/Debian
|
|
sudo apt-get install libdbi-perl libdbd-mysql-perl
|
|
|
|
# CentOS/RHEL
|
|
sudo yum install perl-DBI perl-DBD-MySQL
|
|
```
|
|
|
|
### 2. Update Agent Configuration
|
|
Add to both `_agent-linux/Cfg/Config.pm` and `_agent-windows/Cfg/Config.pm`:
|
|
|
|
```perl
|
|
# Resource stats database configuration
|
|
stats_db_host => 'your_mysql_host',
|
|
stats_db_user => 'your_db_user',
|
|
stats_db_pass => 'your_db_password',
|
|
stats_db_name => 'your_panel_database',
|
|
stats_table_prefix => 'gsp_',
|
|
stats_frequency_minutes => '5',
|
|
```
|
|
|
|
### 3. Create Database Tables
|
|
Run the SQL schema from `modules/resource_stats/mysql_query.sql`
|
|
|
|
### 4. Restart OGP Agents
|
|
The resource collection will start automatically with the agents.
|
|
|
|
## Migration Steps
|
|
|
|
1. **Stop existing collector.py cron jobs**
|
|
2. **Install required Perl modules** on agent machines
|
|
3. **Update agent configurations** with database details
|
|
4. **Restart OGP agents**
|
|
5. **Verify data collection** in database
|
|
6. **Remove collector.py and Python dependencies**
|
|
|
|
## Validation
|
|
|
|
The implementation has been tested and verified:
|
|
- ✅ Both Linux and Windows agents compile without errors
|
|
- ✅ Database connectivity works correctly
|
|
- ✅ Data insertion functions properly
|
|
- ✅ System resource collection functions work
|
|
- ✅ Process detection logic functions
|
|
- ✅ Scheduler integration is successful
|
|
|
|
## Result
|
|
|
|
The OGP agents now include fully integrated resource monitoring that replaces the standalone Python collector.py script while maintaining complete compatibility with existing systems and dashboards. |