3.7 KiB
3.7 KiB
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 cataloggsp_machine_samples- System-wide metricsgsp_process_samples- Per-process metrics
Configuration Required
1. Install Perl Database Modules
# 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:
# 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
- Stop existing collector.py cron jobs
- Install required Perl modules on agent machines
- Update agent configurations with database details
- Restart OGP agents
- Verify data collection in database
- 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.