Introduction
Introduction
Queue Monitor for Laravel tracks individual queue jobs with payload storage, replay, and analytics. Unlike aggregate metrics tools, it records every single job from queue to completion.
What Makes It Different
Individual Job Tracking
Most queue monitoring tools provide aggregate metrics (jobs per minute, average duration). Queue Monitor tracks every individual job with full lifecycle visibility.
Job Replay
Failed jobs can be replayed from stored payloads. Useful for debugging and recovery.
Worker & Server Tracking
Know exactly which server and worker processed each job. Horizon vs queue:work is detected automatically.
Resource Metrics
Track CPU time, memory usage, and file descriptors per job via laravel-queue-metrics.
Key Features
- Individual Job Records: Every job tracked with unique UUID
- Payload Storage: Full job payload saved for replay
- Retry Chain Tracking: Full visibility into retry attempts
- Server Identification: Track which server/worker processed each job
- Resource Metrics: CPU, memory, duration per job
- Tag Organization: Categorize jobs with custom tags
- REST API: 14 endpoints for dashboards and integrations
- Job Replay: Re-dispatch jobs from stored payloads
- Failure Analytics: Pattern detection and trend analysis
- Queue Health: Real-time health scoring per queue
Quick Example
use Cbox\LaravelQueueMonitor\Facades\LaravelQueueMonitor as QueueMonitor;
use Cbox\LaravelQueueMonitor\Enums\JobStatus;
// Get failed jobs from last 24 hours
$filters = new JobFilterData(
statuses: [JobStatus::FAILED],
queuedAfter: Carbon::now()->subHours(24)
);
$failedJobs = QueueMonitor::getJobs($filters);
// Replay each failed job
foreach ($failedJobs as $job) {
try {
$replayData = QueueMonitor::replay($job->uuid);
echo "Replayed: {$replayData->newJobId}\n";
} catch (\Exception $e) {
echo "Replay failed: {$e->getMessage()}\n";
}
}
// View statistics
$stats = QueueMonitor::statistics();
echo "Success Rate: {$stats['success_rate']}%\n";
echo "Average Duration: {$stats['avg_duration_ms']}ms\n";
Architecture
- Action Pattern: All business logic in single-responsibility actions
- DTO Pattern: Type-safe data transfer objects
- Repository Pattern: Data access through contracts
- Event-Driven: Subscribes to Laravel queue events and queue-metrics events
Requirements
- PHP 8.3+
- Laravel 11+
- cboxdk/laravel-queue-metrics ^2.3 (installed automatically)
- Redis (default for metrics storage) or database (for low-scale workloads)
Next Steps
- Installation Guide - Get started in 5 minutes
- Facade Usage - Learn the programmatic API
- Job Replay - Master the replay system
- API Reference - Complete REST API docs