cboxdk/laravel-queue-metrics
cboxdk/laravel-queue-metrics gives Laravel apps clear visibility into queue performance: job throughput, wait times, failures, and worker activity across Redis, database, and SQS queues. Use its metrics API and dashboard to spot bottlenecks, tune workers, and keep background jobs reliable.
php artisan vendor:publish). Point the package at a Redis connection used for queue metrics.php artisan queue-metrics:calculate once manually and inspect listQueues() / listJobs() through the package API or your own tinker session. This is the quickest way to confirm discovery is working.queue-metrics:calculate in app/Console/Kernel.php or the Laravel 11+ scheduler, then build a dashboard or alert around discovered queues and job classes. Start with one queue and one worker before broadening discovery.queue-metrics:calculate on a fixed cadence rather than calling it ad hoc. The command is the normal aggregation entry point, and v3.5.1 makes it cheaper on Redis by reading the discovered job list once per run instead of once per queue.listQueues(), dispatch and process at least one real job on it.listQueues(), listJobs()) for dashboards, health checks, and “which queues exist?” admin screens. Do not assume the lists are append-only; reads can now prune persistent legacy keys by applying the aggregated TTL.RedisMetricsStore, use expireIfPersistent() when you need “set a TTL only if the key exists and has none.” It is useful for repairing old keys without overwriting existing TTLs.queue-metrics:calculate completes, not concurrently with it. That keeps dashboards aligned with the latest aggregation run.{prefix}:discovery:queues and {prefix}:discovery:jobs) may still exist without a TTL. v3.5.1 repairs them lazily: the first read applies the aggregated TTL. A legacy key that already has a TTL is left alone.queue-metrics:calculate is now more efficient on Redis, but it still reads discovery data each run. For very large installs, monitor command duration and Redis round trips after upgrading.expireIfPersistent() carefully: it only acts on existing keys without a TTL, so it will not create missing keys or extend keys that already expire.How can I help you explore Laravel packages today?