Laravel Scheduler
The hellocron/laravel package instruments the Laravel Scheduler automatically. Install it, set one key, and every scheduled task reports run when it starts and complete or fail when it ends, with duration and exit code. When a task stops running altogether, the missing report raises the alert, which is the failure mode schedule:run logs can never show you.
Installation
composer require hellocron/laravelAdd your ingest key (panel, starts with ck_) to .env:
HELLOCRON_INGEST_KEY=ck_your_keyDone. The next schedule:run starts pinging, and monitors are created automatically on first ping, subject to your plan’s monitor limit.
What gets reported
runon start,completeon success,failon a non-zero exit code or an exception (with the message),skipwhen a filter such aswithoutOverlappingprevents the run- duration in seconds, exit code, hostname
- a
seriesid correlating each run’s start and end, so overlapping runs of the same task never pair up wrong (see Ping via GET)
Monitor names derive from the command: laravel-<app hash>-inspire. The hash comes from app.url, so several apps on one account stay apart. Override the prefix with HELLOCRON_PREFIX.
Monitor sync (optional)
Pings alone create monitors with default settings. To set expected intervals and grace periods computed from each task’s actual cron expression, add a Management API key (mk_, scopes read + write) and run:
php artisan hellocron:sync --dry-runphp artisan hellocron:syncThe command creates missing monitors, updates existing ones and reports monitors that no longer match any scheduled task. It never deletes anything. Run it after deployments that change the schedule.
Configuration
php artisan vendor:publish --tag=hellocron-config| Key | Env | Default |
|---|---|---|
enabled | HELLOCRON_ENABLED | true |
ingest_key | HELLOCRON_INGEST_KEY | none (package inert without it) |
management_key | HELLOCRON_MANAGEMENT_KEY | none (only hellocron:sync needs it) |
prefix | HELLOCRON_PREFIX | laravel-<md5(app.url)[0:8]>- |
tags | - | [] (sync always adds laravel and the hostname) |
Safety
Monitoring must never take your app down. Pings use a 1 second connect and 2 second request timeout, and every failure is swallowed: if the monitoring endpoint is unreachable, your tasks run exactly as before. The Management API is only called from the hellocron:sync console command, never while the schedule executes.
Requirements
PHP 8.1+, Laravel 10, 11 or 12.