Which parts of Laravel fail silently?
- •Queue workers and Horizon: a supervisor restart loop or an exhausted memory limit leaves jobs unprocessed with the site apparently fine
- •The scheduler: if the cron entry stops, every scheduled command stops, and nothing errors
- •PHP-FPM: an exhausted pool (pm.max_children) shows as slow pages and 502s from nginx, not as a crash
- •laravel.log: a new exception class repeating every minute is the earliest sign of a bad deploy
- •MySQL and Redis: a missing index, a slow query after a data growth spike, or Redis hitting maxmemory with the wrong eviction policy
What does the agent detect automatically?
Opservo finds Laravel applications by their filesystem layout and process list, then watches the systemd units and processes running workers and Horizon, the nginx or Apache virtual host with its SSL expiry, the PHP-FPM pool, laravel.log and the nginx error log, and MySQL and Redis on the same host or in containers. No configuration and no reading of the .env file: the agent never opens application secrets.
How do you catch the scheduler stopping?
Use a heartbeat monitor: a URL the scheduler pings on every run. If the ping stops arriving, Opservo alerts. Add it as a scheduled command:
$schedule->call(fn () => Http::get(config('services.opservo.heartbeat')))->everyFiveMinutes();Heartbeat monitors are included on the Free plan and work for any cron job, backup script or worker, not only Laravel.
How do you find out why a Laravel page is slow?
Ask. Opservo’s chat is grounded in the server’s live facts: PHP-FPM pool usage, MySQL slow-log patterns with literals stripped, Redis fragmentation and rejected connections, the log clusters from the last hour and what changed. The answer names the pattern, for example a query without an index on a table that grew, and gives the command or migration to fix it. Resolve-with-AI can run the fix with approval on servers where remote actions are enabled.
What should page a human?
- •Horizon or a queue worker unit down, or in a restart loop
- •The scheduler heartbeat missed
- •PHP-FPM pool exhausted, or nginx returning 502s on the external check
- •A new error pattern in laravel.log recurring more than a set number of times
- •Disk forecast to fill within 7 days, usually laravel.log or storage/logs itself
- •MySQL connections near max, or Redis at maxmemory with noeviction
Last updated 2026-09-23.