Scheduler stops. Site stays up.
A deploy clobbers your cron entry. The app responds 200. No one fires the scheduler. Your nightly emails stop.
GET /health 200 ok schedule:run · 17h ago
Crontinel watches your Laravel scheduler, Horizon queues, workers, backups, and agent runs, so you hear about the failure before your users do. Also works with Node.js and Python.
Your Laravel scheduler isn't running. Your dashboard shows green. Crontinel knows.
Uptime checks and status pages only confirm that a URL responds. They never look inside artisan schedule:run or Horizon, so a cron entry a deploy silently removed, a stuck overlap lock, or a queue worker that's technically "running" but not draining anything all still read as a clean, all-green dashboard. Crontinel hooks into the scheduler and queue directly and alerts on the one signal that actually matters: the run that should have happened and didn't.
A URL responding 200 doesn't mean your cron ran. It doesn't mean your workers are draining. It doesn't mean your invoices queue isn't 6,000 deep, or that your agent isn't looping on a broken tool call. Generic monitors can't tell you any of that.
A deploy clobbers your cron entry. The app responds 200. No one fires the scheduler. Your nightly emails stop.
GET /health 200 ok schedule:run · 17h ago
A model retry storm or a tool-call loop runs for 40 minutes. The endpoint returns 200 for every request. You find out from billing.
api.status 200 ok agent.run.874 42m · 318 tool calls
A worker process died. Your queue manager shows "running" because one worker is still up. Your billing queue is dead. No errors. No alerts. Just silence.
queue.manager running worker.emails · crashed
One SDK hooks into your scheduler, queue driver and agent runner. It watches job runs, queue depth, worker state, model latency and agent tool calls, end to end. No endpoint pings. No per-task wrapping. No missed instrumentation.
Per-worker status, paused detection, queue depth trend, failed job rate. Monitor every worker type - the moment one blinks, you know.
Every scheduled task registers a run attempt, exit code, and duration. Missed runs trip an alert before the next cron tick.
Hooks into your framework's events, not your code.
OSS first. Local dashboard, CLI, no SaaS needed.
One alert fans out to the channels your team actually watches - per-service routing, quiet hours, auto-resolve.
One command verifies scheduler, supervisors and queues after each deploy. Zero-downtime monitoring that fails loud.
$ crontinel check ✓ scheduler last run 00:00:12 ago ✓ workers.default 2 supervisors · running ✓ queue.invoices 127 pending · 2m oldest ✓ agents.support 12 runs · p95 8.2s ✗ queue.emails backpressure · 6,413 pending
Track runs, tool calls, token spend, model latency and loop detection. Ask via MCP, so your own agent can answer "are any queues or agents backing up?" with real data.
Drop the SDK in. No scheduler wrapping. No per-job decorators. No changes to existing jobs.
# pick your runtime $ npm i @crontinel/node $ pip install git+https://github.com/crontinel/python.git $ go get github.com/crontinel/go $ gem install crontinel $ composer require crontinel/laravel $ dotnet add package Crontinel
Slack, PagerDuty, email, webhook. HMAC-signed payloads. Quiet hours. Route once, in .env.
# .env CRONTINEL_ALERT_CHANNEL=slack CRONTINEL_SLACK_WEBHOOK=...
We read scheduler events, worker state, queue internals and agent traces. When something drifts, you hear from us, not a user.
# ci/cd deploy hook $ crontinel check ✓ 47 jobs · 3 workers · 2 queues · 4 agents
Every scheduled task with its last run, duration and exit code. Every worker with its state. Every queue with depth, oldest job, and failure rate. Every agent run with its tool calls and token spend.
| Task | Last run | Duration | Status |
|---|---|---|---|
| generate:daily-invoices | 2m ago | 1.82s | ok |
| dunning:send-reminders | 14m ago | 940ms | ok |
| sync:stripe-webhooks | 17m ago | ... | exit 1 |
| export:accounting-feed | 29m ago | 4.1s | ok |
| telemetry:roll-up | 1h 02m ago | 12.4s | slow |
| cleanup:stale-sessions | 3h ago | 220ms | ok |
| Queue | Depth | Oldest | Trend |
|---|---|---|---|
| default | 12 | 200ms | |
| invoices | 127 | 2m 04s | |
| emails | 6,413 | 12m 04s | |
| analytics | 88 | 400ms | |
| notifications | 3 | 80ms | |
Trusted by developers worldwide
We are checking paid billing and usage limits before opening paid signups.
For one app.
Starter, Pro, and Max are planned.
Their checkout flow and final usage terms are still under review.
See current availabilityCrontinel is SDKs and a CLI, not a vendor lock-in. Every runtime has its own MIT-licensed package that works against your own database. The cloud dashboard is an option layered on top, not a dependency.
Queue & scheduler auto-detection for Node runtimes.
Queue & scheduler auto-detection for Python runtimes.
Queue & scheduler auto-detection for Go runtimes.
Queue & scheduler auto-detection for Rust runtimes.
Queue & scheduler auto-detection for PHP runtimes.
Queue & scheduler auto-detection, zero wrap.
Queue & scheduler auto-detection for Ruby runtimes.
Queue & scheduler auto-detection for Rails runtimes.
Rust core. The recorder, agent and shared wire format.
Language-agnostic. Wrap any cron, Docker, or K8s job.
Queue & scheduler auto-detection for .NET runtimes.
MCP server. Let your agent query jobs, queues and runs.
The open-source package is free forever. The SaaS adds the things you would have to build yourself.
Everything the OSS packages do, plus multi-app dashboards, team access, long-horizon history, an MCP server, and routing rules. You keep the self-hosted SDKs; we handle the rest.
MIT licensed. Every SDK works standalone - Blade dashboard, CLI health check, Slack alerts, queue and cron monitoring. No SaaS required. Own your data.
npm i @crontinel/node pip install git+https://github.com/crontinel/python.git go get github.com/crontinel/go composer require crontinel/laravel gem install crontinel If you're comparing tools or looking for a specific failure mode, these are the strongest pages on the site.
See what cron monitoring covers, what queue monitoring covers, and why you need both in production.
Cron Monitoring Guide Complete guide to detecting missed runs, silent failures, worker stalls, and queue backpressure.Track paused supervisors, queue depth, and failing workers before the backlog becomes customer visible.
Catch delivery failures, retry storms, and stalled callback queues before customers notice.
Catch the moment schedule:run stops arriving, runs late, or silently skips a job.
Route the right failures to Slack, PagerDuty, or webhooks without drowning the team in noise.
Publish a simple public incident page for cron, queue, and webhook problems you control.
Free plan, no credit card. Two commands to install. Slack alert in under five minutes.