
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;
/upliveness 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
-
/upcontract 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.