Queue Monitoring
See Laravel queue depth, job lifecycles with CPU and memory, failures and stuck unique-job locks on the ErrTap Queues page, and optionally pause, resume or clear queues from the dashboard.
The Queues page shows what your Laravel queue workers are doing. It's fed by the
errtap/laravel SDK, which is on by default once the package is
installed and ERRTAP_DSN is set.
What you see
| Section | Contents |
|---|---|
| Queues | Depth of each queue a worker serves: pending, delayed, running and the oldest wait, plus the first jobs in line (Redis and database drivers) |
| Job classes · 24h | Per job class: runs, failures, and duration, CPU time and peak memory |
| Recent jobs / Recent failures | Each job's lifecycle: queued, started, released, processed, failed or timed out, with wait time and duration. Open a run for its details |
| Unique locks | Held ShouldBeUnique locks (Redis and database cache stores). Locks that no queued or running job explains are flagged as stuck |
| Reporting hosts | The workers currently sending data |
| Commands | Queue commands sent from the dashboard and their results (when queue control is on) |
Peak memory per job needs PHP 8.2 or later.
How data gets here
Workers batch lifecycle events and send them from the worker loop every few seconds, never
once per job. Depth snapshots are taken every ERRTAP_QUEUE_SNAPSHOT_SECONDS (default 10).
Queue telemetry does not count toward your monthly event quota. Job runs are kept for your
plan's retention window; depth snapshots for 7 days and queue commands for 30 days.
To report only a share of successful jobs on a busy fleet, set ERRTAP_QUEUE_SAMPLE_RATE
(for example 0.1). Failures, timeouts and unique-job dispatches are always reported.
To snapshot queues that no local worker serves, list them in ERRTAP_QUEUES, for example
redis:emails,default.
Queue control
Queue control is off by default. When you turn it on, owners and admins can:
- Pause and resume a queue (needs a Laravel version with
Queue::pause()). - Clear a queue (drivers that implement
ClearableQueue: Redis, database, SQS, Beanstalkd). - Move a waiting job to the front (Redis driver). Delayed jobs can be run next.
- Release a unique-job lock that nothing holds any more.
ERRTAP_QUEUE_CONTROL=true
ERRTAP_QUEUE_CONTROL_TOKEN=<upload-token> # Project settings → Upload tokensWorkers poll ErrTap for commands every few seconds, so ErrTap never connects into your network. The command channel authenticates with an upload token, not the public DSN, and the dashboard only offers Release for locks reported over that channel. Every command is recorded in the organization's audit log.
Turning it off
Set ERRTAP_QUEUE_MONITOR=false to stop sending queue diagnostics. Exception reporting and
logs are unaffected.