The monitoring your Laravel app actually needs

Not just "did it ping back." Crontinel reads Laravel internals to give you answers other tools can't.

Unique to Crontinel

Horizon internals — not just "is it running?"

Crontinel reads Horizon's Redis keys directly. Not an HTTP ping. Actual supervisor states, actual queue depths, actual failed job rates per minute.

  • Supervisor status per supervisor (not just "Horizon is running")
  • Paused detection
  • Failed jobs per minute with configurable threshold
  • Alerts when any supervisor goes down
Horizon status snapshot
statusrunning
supervisor-1running (3 workers)
supervisor-2down ← alert
failed / min4.2 (threshold: 5)
pausedno
Queue depths
QueueDepthFailedHealth
default50ok
emails1,2043alert
notifications120ok

Queue depth, before it becomes a customer complaint

Set per-queue thresholds for depth, failed count, and oldest job age. Get alerted before the backlog becomes a problem.

  • Depth threshold per queue
  • Failed count threshold
  • Oldest job age (wait time) alert
  • Works with Redis and database queue drivers

Cron run history: every execution, every exit code

Hooks into Laravel's scheduler via built-in events. Every scheduled command run is recorded automatically. No wrapping needed.

  • Exit code per run
  • Execution duration
  • "Late" detection when job doesn't run on schedule
  • Historical chart per command
Scheduled commands
CommandLast runStatus
inspire6h agook
send-invoices5d agook
cleanup-old-logs23h ago⚠ late

Alerts that go where you work

Fires when something breaks. Resolves automatically when it recovers. No noise.

Slack
Webhook or app integration
Email
Single or multiple recipients
PagerDuty
Full incident lifecycle
Webhook
Any endpoint you choose

Frequently asked questions

Does Crontinel work without Laravel Horizon?

Yes. Queue monitoring and cron tracking are fully independent of Horizon. If you use the database queue driver, Crontinel monitors queue depths and failed jobs from your database tables. Cron tracking works via Laravel's scheduler events regardless of which queue driver you use. Horizon monitoring is an additional layer for apps that run it.

How does Crontinel monitor Horizon internals?

Crontinel reads Horizon's Redis keys directly, the same data source the Horizon dashboard uses. This means it sees actual supervisor states, actual pause status, and actual failed-jobs-per-minute rates, not just whether an HTTP health endpoint returned 200. This approach catches scenarios where Horizon reports "running" at the top level while an individual supervisor handling a critical queue has silently crashed.

What queue drivers does Crontinel support?

Crontinel supports the Redis and database queue drivers. Redis is the recommended driver for production Horizon setups, and Crontinel reads queue depths and failed counts directly from Redis. For apps using the database driver, Crontinel queries the jobs and failed_jobs tables. SQS and other drivers are not currently supported.

Does cron tracking require code changes to my scheduled commands?

No. Crontinel hooks into Laravel's built-in scheduler events (ScheduledTaskStarting, ScheduledTaskFinished, ScheduledTaskFailed) automatically after installation. Every command defined in your schedule() method is tracked with its exit code and duration. No wrapping, no per-command changes needed.

How are alerts deduplicated?

Crontinel applies a 5-minute cooldown per alert condition. If a queue depth stays above its threshold, you receive one alert, not one per polling cycle. The alert resolves automatically when the condition clears, at which point you receive a recovery notification. This prevents alert fatigue during extended incidents while still giving you clear start and end signals.

Is the OSS package free forever?

Yes. The core Crontinel package is MIT licensed and will remain free forever. You can self-host the full monitoring dashboard, configure Slack or email alerts, and track unlimited cron runs and queue depths with no subscription required. The paid SaaS tier adds multi-app dashboards, longer history retention, and team access for engineering organizations that want managed infrastructure.

Start free, no credit card