Skip to content
← All posts

Launching Queue Monitor for Laravel

Full queue visibility without Horizon or Redis. Queue Monitor for Laravel tracks every job on any driver (database, SQS, Beanstalkd) with one composer require and a migration.

· 4 min read · Sylvester Damgaard
Launching Queue Monitor for Laravel

I released cboxdk/laravel-queue-monitor v1.2.0 today. Full queue job visibility for any Laravel application, no Horizon or Redis required. If your app has a database connection, you have monitoring.

The problem

Queue monitoring in Laravel has always meant Horizon, and Horizon means Redis. If you run database queues, SQS, or Beanstalkd, you get nothing. No job tracking, no failure history, no retry visibility. A job fails at 3am and your only signal is a row in the failed_jobs table.

Even with Horizon, you get aggregate dashboards: throughput, wait times, recent jobs. You don't get individual job tracking with retry chains, exception history, or the ability to replay a failed job from its stored payload.

Any driver, one migration

Queue Monitor hooks into Laravel's native queue events, the same ones every driver fires. Database, Redis, SQS, Beanstalkd, custom drivers.

bash
composer require cboxdk/laravel-queue-monitor
php artisan vendor:publish --tag="queue-monitor-config"
php artisan migrate

That's it. Monitoring starts automatically. Every job dispatched after this point is tracked with a UUID, full lifecycle timestamps, server identification, and worker type detection.

Queue Monitor overview dashboard showing job count, success rate, failed jobs, average duration, and throughput chart
The overview dashboard. Key metrics, recent jobs, queue health, and throughput at a glance.

What you see

For every job:

  • Full lifecycle: queued → processing → completed/failed/timeout. Exact timestamps for each transition.

  • Retry chains: when a job fails and retries, each attempt is linked. See the full history across attempts.

  • Exception traces: full stack traces stored per attempt.

  • Per-job CPU and memory: actual CPU time in milliseconds and peak memory in MB, measured per execution. Also tracks worker memory limits and file descriptors. Powered by laravel-queue-metrics.

  • Replay: full payload stored (up to 64KB). Re-dispatch any failed job from the API, CLI, or programmatically.

Queue Monitor jobs list with status filters, queue selection, and sortable columns showing job class, status, queue, duration, and timestamps
The jobs list. Filter by status, queue, date range, or search. Every column sortable.
Queue Monitor job detail page showing payload, CPU time, memory usage, duration, and retry timeline with linked attempts
Individual job detail. Payload, metrics, retry timeline with full exception traces per attempt.

Three ways to access it

Web dashboard at /queue-monitor. Overview, job list with filtering, per-job detail pages, analytics, and health checks.

Queue Monitor analytics dashboard showing job class distribution donut chart, per-queue statistics table, per-server statistics, and failure patterns
Analytics view. Job class distribution, per-queue and per-server statistics, failure patterns.

Terminal dashboard: php artisan queue-monitor:dashboard launches a k9s-style TUI. Six views, keyboard navigation, status and queue filters, job drill-down. Works over SSH without a browser.

REST API: 14 endpoints for listing, filtering, replaying, and deleting jobs. Paginated with automatic payload redaction.

Works with Horizon too

If you do use Horizon, Queue Monitor doesn't replace it. Horizon gives you queue management and real-time throughput. Queue Monitor adds individual job tracking with retry chains, exception history, and replay. When Horizon is present, Queue Monitor picks up supervisor data and workload metrics. Same for Queue Autoscale. Scaling events and SLA tracking appear when installed.

Queue Monitor health dashboard showing health score of 100 with six passing health checks
Health checks. Overall health score with individual check status for database, queue activity, stale jobs, queue size, queue routing, and storage.
Queue Monitor infrastructure dashboard showing worker overview, queue capacity table, SLA compliance at 100%, and autoscale activity counters
Infrastructure view. Worker overview, queue managers, queue capacity, SLA compliance, and autoscale activity.

The queue stack

This completes the Cbox queue observability stack:

  1. Queue Metrics: aggregate metrics, health scores, Prometheus export

  2. Queue Monitor: individual job tracking, replay, analytics

  3. Queue Autoscale: predictive scaling based on queue depth and SLA targets

Each works standalone. Install them together and they integrate automatically.

Full documentation: laravel-queue-monitor docs.

Sylvester Damgaard
Sylvester Damgaard

The person behind Cbox. Has been writing code and running servers since 2000. Built the CMS and infrastructure behind TV2's regional news sites, co-founded a drone inspection startup, and makes open source packages for PHP teams.