Laravel Watchtower: Monitor Schedules, Queues &amp; Errors | Mohamed Said        [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://msaied.com) [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles  ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

       [  ](https://github.com/EG-Mohamed)       

 [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

  [ home ](https://msaied.com)    [ articles ](https://msaied.com/articles)    Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower        On this page       1. [  What Is Watchtower? ](#what-is-watchtower)
2. [  Three Dashboard Tabs ](#three-dashboard-tabs)
3. [  Schedule ](#schedule)
4. [  Queues &amp; Jobs ](#queues-amp-jobs)
5. [  Errors ](#errors)
6. [  Production Safety by Default ](#production-safety-by-default)
7. [  Authorization ](#authorization)
8. [  Optional Alerts ](#optional-alerts)
9. [  Key Takeaways ](#key-takeaways)

  ![Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower](https://cdn.msaied.com/275/ea3277c4bc2bbec3a89c5c5cc8856a04.png)

 [  Laravel ](https://msaied.com/articles?category=laravel) [  Composer Pacakge ](https://msaied.com/articles?category=composer-pacakge)  #Laravel   #Monitoring   #Queues   #Scheduler   #Packages   #PHP  

 Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower 
==============================================================================

     23 Jun 2026      3 min read    ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said  

       Table of contents

  9 sections  

1. [  01   What Is Watchtower?  ](#what-is-watchtower)
2. [  02   Three Dashboard Tabs  ](#three-dashboard-tabs)
3. [  03   Schedule  ](#schedule)
4. [  04   Queues &amp; Jobs  ](#queues-amp-jobs)
5. [  05   Errors  ](#errors)
6. [  06   Production Safety by Default  ](#production-safety-by-default)
7. [  07   Authorization  ](#authorization)
8. [  08   Optional Alerts  ](#optional-alerts)
9. [  09   Key Takeaways  ](#key-takeaways)

       What Is Watchtower?
-------------------

Watchtower is an MIT-licensed Laravel package that brings scheduled tasks, queues, jobs, and exceptions together on a single dashboard designed to run safely in production. Rather than just surfacing data, it lets you act on it: trigger a scheduled task on demand, bulk-retry failed jobs, and mark exceptions as resolved — all from one place.

It requires PHP 8.2+ and Laravel 11 or 12, and works with any queue driver (database, Redis, or SQS) without forcing a Redis dependency.

Three Dashboard Tabs
--------------------

### Schedule

Lists every scheduled task with its cron expression rendered in plain English, alongside run history, durations, and missed-run detection. A **Run now** button lets you dispatch any task immediately without touching the CLI.

### Queues &amp; Jobs

Displays live queue metrics next to the failed-jobs table. You can retry a single job or bulk-retry by exception type or time window — a significant time-saver when a downstream service blip takes out a whole batch.

### Errors

Groups exceptions by type and count with full stack traces, request context, and job context. Each error group has resolve and reopen controls so your team can track which issues have been addressed.

Production Safety by Default
----------------------------

Recording every request and job in-band would add latency to the very app being monitored. Watchtower avoids this by deferring writes to Laravel's `terminating()` callback. High-traffic applications can reduce overhead further with a sampling rate that still captures every failure and every schedule run regardless of the sample setting.

Row sizes are bounded by field truncation, and a daily `watchtower:prune` command enforces per-type retention windows (30 days for schedule runs and exceptions, 7 days for queue records by default).

Most behaviour is controlled through environment variables:

```env
WATCHTOWER_ENABLED=true
WATCHTOWER_DB_CONNECTION=monitoring
WATCHTOWER_SAMPLING_RATE=0.25
WATCHTOWER_AFTER_RESPONSE=true
WATCHTOWER_RETAIN_EXCEPTIONS=30

```

Setting `WATCHTOWER_ENABLED=false` acts as an instant kill switch, and ignore lists for jobs, commands, and exceptions keep noisy items off the dashboard.

Authorization
-------------

The dashboard is restricted to the local environment by default. To open it in other environments, define the `viewWatchtower` gate:

```php
use Illuminate\Support\Facades\Gate;

Gate::define('viewWatchtower', function ($user) {
    return $user !== null && $user->isAdmin();
});

```

Alternatively, use the fluent callback on the `Watchtower` facade:

```php
use Watchtower\Watchtower;

Watchtower::auth(fn ($request) => $request->user()?->isAdmin());

```

Unauthorized requests receive a `403` response.

Optional Alerts
---------------

Watchtower can send notifications when a scheduled task fails, a run is missed, or failed jobs exceed a threshold (25 within 60 minutes by default). Alerts are disabled until you set `WATCHTOWER_ALERTS_ENABLED=true`, and they support Slack, a generic webhook, or email.

The checks run via the `watchtower:monitor` command, which you add to your scheduler:

```php
$schedule->command('watchtower:monitor')->everyFiveMinutes();

```

Key Takeaways
-------------

- **Unified dashboard** for schedules, queues, jobs, and exceptions — no separate tools needed.
- **Actionable controls**: run tasks on demand, bulk-retry failed jobs, resolve/reopen errors.
- **Driver-agnostic**: works with database, Redis, or SQS queues.
- **Production-safe**: deferred writes, configurable sampling, field truncation, and automatic pruning.
- **Gate-based access control** consistent with Horizon and Telescope conventions.
- **Optional alerting** via Slack, webhook, or email with a simple scheduler command.

Source: [Laravel News — Monitor and Control Schedules, Queues, and Errors in Laravel with Watchtower](https://laravel-news.com/monitor-and-control-schedules-queues-and-errors-in-laravel-with-watchtower)

 Found this useful?

          [  ](https://twitter.com/intent/tweet?url=https%3A%2F%2Fmsaied.com%2Farticles%2Fmonitor-and-control-schedules-queues-and-errors-in-laravel-with-watchtower&text=Monitor+and+Control+Schedules%2C+Queues%2C+and+Errors+in+Laravel+with+Watchtower) [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fmsaied.com%2Farticles%2Fmonitor-and-control-schedules-queues-and-errors-in-laravel-with-watchtower) 

 Frequently Asked Questions 
----------------------------

  3 questions  

     Q01  Does Watchtower require Redis to work?        No. Watchtower works with any Laravel queue driver — database, Redis, or SQS — and has no hard Redis dependency. 

      Q02  How does Watchtower avoid adding overhead to production requests?        Watchtower defers its writes to Laravel's terminating() callback so they happen after the response is sent. You can also configure a sampling rate so only a fraction of requests are recorded, while every failure and schedule run is always captured. 

      Q03  How do you restrict access to the Watchtower dashboard in production?        Define the viewWatchtower gate using Gate::define() or use the Watchtower::auth() fluent callback. Without either, the dashboard is only accessible in the local environment. Unauthorized requests receive a 403 response. 

  Continue reading

 More Articles 
---------------

 [ View all    ](https://msaied.com/articles) 

 [ ![Typed Enums as First-Class Domain Citizens in Laravel with PHP 8.3](https://cdn.msaied.com/282/71a8fc3e4cf4239b1bf6d38d57e0b985.png) laravel php8.3 enums 

### Typed Enums as First-Class Domain Citizens in Laravel with PHP 8.3

Go beyond simple enum labels. Learn how to attach behaviour, implement interfaces, and use backed enums as Elo...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 24 Jun 2026     3 min read  

  Read    

 ](https://msaied.com/articles/typed-enums-as-first-class-domain-citizens-in-laravel-with-php-83) [ ![RAG in Laravel: pgvector, Embeddings, and Retrieval-Augmented Generation in Practice](https://cdn.msaied.com/281/8d2ac57c0e69d3ff9f1e68faf0e4d10c.png) laravel ai pgvector 

### RAG in Laravel: pgvector, Embeddings, and Retrieval-Augmented Generation in Practice

Build a production-ready RAG pipeline in Laravel using pgvector, OpenAI embeddings, and a clean retrieval laye...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 24 Jun 2026     4 min read  

  Read    

 ](https://msaied.com/articles/rag-in-laravel-pgvector-embeddings-and-retrieval-augmented-generation-in-practice) [ ![Ship AI with Laravel: Failover, Queues, and Middleware for AI Agents](https://cdn.msaied.com/283/f0a6d6a6f22d9131bacb96bae1bfc10b.png) Laravel AI Agents Queues 

### Ship AI with Laravel: Failover, Queues, and Middleware for AI Agents

Learn how to make Laravel AI agents production-ready with automatic provider failover, background queue proces...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 24 Jun 2026     3 min read  

  Read    

 ](https://msaied.com/articles/ship-ai-with-laravel-failover-queues-and-middleware-for-ai-agents) 

   [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://msaied.com)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

Explore

- [Home](https://msaied.com)
- [Projects](https://msaied.com/projects)
- [Articles](https://msaied.com/articles)
- [Certificates](https://msaied.com/certificates)
- [Contact](https://msaied.com#contact-section)

Connect

- [   hello@msaied.com ](mailto:hello@msaied.com)
- [   +20 109 461 9204 ](tel:+201094619204)

© 2026 Mohamed Said. All rights reserved.

 [  ](https://github.com/EG-Mohamed) [  ](https://www.linkedin.com/in/msaiedm/) [  ](https://wa.me/201094619204) [  ](mailto:hello@msaied.com) [  ](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
