- Move 12 markdown files from root to docs/ subdirectories - Organize documentation by category: • docs/troubleshooting/ (1 file) - Technical troubleshooting guides • docs/deployment/ (4 files) - Deployment and security documentation • docs/guides/ (3 files) - Feature-specific guides • docs/planning/ (4 files) - Planning and improvement proposals Root directory cleanup: - Reduced from 16 to 4 markdown files in root - Only essential project files remain: • CLAUDE.md (AI instructions) • README.md (Main project readme) • CLEANUP_PLAN.md (Current cleanup plan) • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements) This improves: ✅ Documentation discoverability ✅ Logical organization by purpose ✅ Clean root directory ✅ Better maintainability
149 lines
6.3 KiB
PHP
149 lines
6.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
|
|
|
use App\Framework\Core\AppBootstrapper;
|
|
use App\Framework\Mcp\Tools\SchedulerQueuePipelineAgent;
|
|
use App\Framework\Performance\EnhancedPerformanceCollector;
|
|
use App\Framework\DateTime\SystemClock;
|
|
use App\Framework\DateTime\SystemHighResolutionClock;
|
|
use App\Framework\Performance\MemoryMonitor;
|
|
|
|
echo "🔧 Testing Scheduler-Queue Pipeline Agent\n";
|
|
echo "==========================================\n\n";
|
|
|
|
try {
|
|
// Bootstrap framework
|
|
$clock = new SystemClock();
|
|
$highResClock = new SystemHighResolutionClock();
|
|
$memoryMonitor = new MemoryMonitor();
|
|
$collector = new EnhancedPerformanceCollector($clock, $highResClock, $memoryMonitor, enabled: false);
|
|
|
|
$bootstrapper = new AppBootstrapper(__DIR__ . '/../..', $collector, $memoryMonitor);
|
|
$container = $bootstrapper->bootstrapWorker();
|
|
|
|
$pipelineAgent = $container->get(SchedulerQueuePipelineAgent::class);
|
|
|
|
echo "✅ Framework bootstrapped successfully\n";
|
|
echo "✅ Pipeline Agent retrieved\n\n";
|
|
|
|
// Test 1: Pipeline Health Check
|
|
echo "📋 Test 1: Pipeline Health Check\n";
|
|
echo "-------------------------------\n";
|
|
|
|
$healthCheck = $pipelineAgent->checkPipelineHealth();
|
|
|
|
echo "🏥 Health Check Results:\n";
|
|
echo " Overall Status: " . $healthCheck['overall_status'] . "\n";
|
|
echo " Scheduler Health: " . $healthCheck['scheduler_health']['status'] . "\n";
|
|
echo " Queue Health: " . $healthCheck['queue_health']['status'] . "\n";
|
|
echo " Database Health: " . $healthCheck['database_health']['status'] . "\n";
|
|
echo " Integration Health: " . $healthCheck['integration_health']['status'] . "\n";
|
|
echo "\n";
|
|
|
|
// Test 2: Pipeline Status
|
|
echo "📋 Test 2: Pipeline Status\n";
|
|
echo "------------------------\n";
|
|
|
|
$status = $pipelineAgent->getPipelineStatus();
|
|
|
|
echo "📊 Pipeline Status:\n";
|
|
echo " Due Tasks: " . $status['scheduler']['due_tasks'] . "\n";
|
|
echo " Queue Size: " . $status['queue']['current_size'] . "\n";
|
|
echo " Total Jobs: " . $status['database']['total_jobs'] . "\n";
|
|
echo " Active Jobs: " . $status['database']['active_jobs'] . "\n";
|
|
echo " Failed Jobs: " . $status['database']['failed_jobs'] . "\n";
|
|
echo " Completed Jobs: " . $status['database']['completed_jobs'] . "\n";
|
|
echo "\n";
|
|
|
|
// Test 3: Pipeline Metrics
|
|
echo "📋 Test 3: Pipeline Metrics (1 hour)\n";
|
|
echo "-----------------------------------\n";
|
|
|
|
$metrics = $pipelineAgent->collectPipelineMetrics('1hour');
|
|
|
|
echo "📈 Pipeline Metrics:\n";
|
|
echo " Timeframe: " . $metrics['timeframe'] . "\n";
|
|
echo " Collection Time: " . $metrics['collection_time'] . "\n";
|
|
echo " Scheduler Metrics:\n";
|
|
echo " - Tasks Executed: " . $metrics['scheduler_metrics']['tasks_executed'] . "\n";
|
|
echo " - Success Rate: " . $metrics['scheduler_metrics']['success_rate'] . "%\n";
|
|
echo " Queue Metrics:\n";
|
|
echo " - Jobs Processed: " . $metrics['queue_metrics']['jobs_processed'] . "\n";
|
|
echo " - Success Rate: " . $metrics['queue_metrics']['success_rate'] . "%\n";
|
|
echo "\n";
|
|
|
|
// Test 4: Pipeline Diagnostics
|
|
echo "📋 Test 4: Pipeline Diagnostics\n";
|
|
echo "------------------------------\n";
|
|
|
|
$diagnostics = $pipelineAgent->runPipelineDiagnostics();
|
|
|
|
echo "🔍 Diagnostics Results:\n";
|
|
echo " Performance Issues: " . count($diagnostics['performance_issues']) . "\n";
|
|
echo " Queue Bottlenecks: " . count($diagnostics['queue_bottlenecks']) . "\n";
|
|
echo " Scheduler Problems: " . count($diagnostics['scheduler_problems']) . "\n";
|
|
echo " Database Issues: " . count($diagnostics['database_issues']) . "\n";
|
|
echo " Integration Problems: " . count($diagnostics['integration_problems']) . "\n";
|
|
echo "\n";
|
|
|
|
// Test 5: Integration Test
|
|
echo "📋 Test 5: Pipeline Integration Test\n";
|
|
echo "----------------------------------\n";
|
|
|
|
$integrationTest = $pipelineAgent->testPipelineIntegration();
|
|
|
|
echo "🧪 Integration Test Results:\n";
|
|
echo " Test Duration: " . $integrationTest['test_duration_seconds'] . "s\n";
|
|
echo " Overall Result: " . $integrationTest['results']['overall_result'] . "\n";
|
|
|
|
if (isset($integrationTest['results']['scheduler_test'])) {
|
|
echo " Scheduler Test: " . $integrationTest['results']['scheduler_test']['status'] . "\n";
|
|
}
|
|
if (isset($integrationTest['results']['queue_test'])) {
|
|
echo " Queue Test: " . $integrationTest['results']['queue_test']['status'] . "\n";
|
|
}
|
|
if (isset($integrationTest['results']['integration_test'])) {
|
|
echo " Integration Test: " . $integrationTest['results']['integration_test']['status'] . "\n";
|
|
}
|
|
if (isset($integrationTest['results']['performance_test'])) {
|
|
echo " Performance Test: " . $integrationTest['results']['performance_test']['status'] . "\n";
|
|
$benchmark = $integrationTest['results']['performance_test']['benchmark_results'];
|
|
echo " - Jobs/Second: " . $benchmark['jobs_per_second'] . "\n";
|
|
echo " - Avg Latency: " . $benchmark['average_latency_ms'] . "ms\n";
|
|
echo " - Memory Usage: " . $benchmark['memory_usage_mb'] . "MB\n";
|
|
}
|
|
echo "\n";
|
|
|
|
// Test 6: Job Analysis
|
|
echo "📋 Test 6: Job Pattern Analysis\n";
|
|
echo "-----------------------------\n";
|
|
|
|
$jobAnalysis = $pipelineAgent->analyzeJobPatterns(50);
|
|
|
|
echo "📊 Job Analysis Results:\n";
|
|
echo " Job Type Distribution: " . count($jobAnalysis['job_type_distribution']) . " types\n";
|
|
echo " Execution Patterns: " . count($jobAnalysis['execution_patterns']) . " patterns\n";
|
|
echo " Failure Analysis: " . count($jobAnalysis['failure_analysis']) . " categories\n";
|
|
echo "\n";
|
|
|
|
echo "🎯 Pipeline Agent Test Summary:\n";
|
|
echo "==============================\n";
|
|
echo "✅ Health Check: Working\n";
|
|
echo "✅ Status Monitoring: Working\n";
|
|
echo "✅ Metrics Collection: Working\n";
|
|
echo "✅ Diagnostics: Working\n";
|
|
echo "✅ Integration Testing: Working\n";
|
|
echo "✅ Job Analysis: Working\n";
|
|
echo "\n";
|
|
echo "🚀 Pipeline Agent is fully operational!\n";
|
|
|
|
} catch (Exception $e) {
|
|
echo "❌ Pipeline Agent test failed: " . $e->getMessage() . "\n";
|
|
echo "Stack trace:\n" . $e->getTraceAsString() . "\n";
|
|
exit(1);
|
|
}
|
|
|
|
echo "\n🎯 Pipeline Agent test completed successfully!\n"; |