Skip to content
Laravel uptime monitoring queues Horizon scheduler

Laravel Uptime Monitoring: /up, Queues, Scheduler, and Deploys

Set up Laravel uptime monitoring for the /up health route, dependency readiness, queues, Horizon, scheduler, long-running services, and releases.

Webalert Team
Published
Updated
3 min read

Uptime Monitoring for Laravel

Laravel's web routes can remain healthy while Horizon is paused, queue jobs are aging, the scheduler is no longer invoked, or Octane and Reverb still run old code. Laravel uptime monitoring should separate framework boot, traffic readiness, customer paths, and long-running processes.


Use the built-in health route deliberately

Laravel provides /up by default. Its official deployment documentation says the route returns 200 when the application boots without exceptions and dispatches DiagnosingHealth, which listeners can use for application-specific checks.

Use the default route as liveness unless you intentionally extend it. Put database and cache checks in a separate readiness contract when a failure should remove an instance from traffic. Do not make a non-critical SaaS outage restart every healthy PHP worker.

Monitor user and framework paths

  • public HTTPS route with stable content;
  • data-backed API route with JSON validation;
  • authentication or another revenue-critical flow;
  • /up liveness and separate readiness;
  • storage upload/download canary when file handling is critical;
  • Reverb WebSocket connection and message round trip when realtime matters.

Monitor queues and scheduler independently

For queues, watch oldest-job age by queue, throughput, failures, retries, worker count, and backend health. Laravel Horizon exposes throughput, runtime, and failures for Redis queues; protect the dashboard and use metrics rather than a public /horizon page check.

Laravel's scheduler normally depends on one system cron invocation of schedule:run every minute. Track both scheduler invocation and successful completion of critical tasks. A scheduler heartbeat does not prove a queued report, renewal, or sync finished.

Make long-running services release-aware

Queue workers, Horizon, Octane, and Reverb retain application state and must be reloaded during deployment. Expose a safe release ID, confirm every process type moves to the same release, run migrations safely, and smoke-test a data-backed route after traffic switches.

On Vapor, focus on Lambda errors, duration, concurrency, cold starts, SQS age, and database connection pressure. On Forge, containers, or VMs, add PHP-FPM capacity, process supervision, disk, memory, and web-server signals.


Laravel monitoring checklist

  • /up contract documented as liveness or extended health
  • Dependency readiness separated where appropriate
  • Critical web and API paths validated externally
  • Queue age, failures, retries, throughput, and workers tracked
  • Scheduler invocation and task completion monitored separately
  • Reverb, Octane, and storage checked when used
  • Long-running processes expose the current release
  • Post-deploy smoke test and rollback path verified

Continue with the Laravel production monitoring guide, queue-depth monitoring, and cron monitoring.

Start monitoring Laravel with external route, API content, response-time, TLS, and heartbeat checks.

Catch outages before your customers do — free, no credit card required.

Start Free Monitoring

Written by

Webalert Team

The Webalert team is dedicated to helping businesses keep their websites online and their users happy with reliable monitoring solutions.

Stop guessing about downtime

Start monitoring your website in under a minute — free, no credit card required.

Start Free Monitoring