# Crontinel > Completed is not done. Crontinel tells you when a background job finished without doing the work. Any runtime sends one HTTP receipt. The Laravel package attaches that receipt from the scheduler and can add queue depth and Horizon freshness. ## Core pages - [Home](https://crontinel.com/): Cron and queue monitoring for any framework - [Features](https://crontinel.com/features/): Supervisors, queue depth, cron runs, alerts, and integrations - [Pricing](https://crontinel.com/pricing/): Hosted plans, including a free plan - [FAQ](https://crontinel.com/faq/): Frequently asked questions - [About](https://crontinel.com/about/): The product and the team - [Products](https://crontinel.com/products/): Products in the Crontinel catalog - [Agent](https://crontinel.com/agent/): Using Crontinel from an AI agent - [Changelog](https://crontinel.com/changelog/): Product changes - [Security](https://crontinel.com/security/): Security practices and data handling - [Privacy](https://crontinel.com/legal/privacy/): Privacy policy - [Terms](https://crontinel.com/legal/terms/): Terms of service - [Cookie policy](https://crontinel.com/legal/cookies/): Cookie usage and consent ## Blog - [Blog](https://crontinel.com/blog/): Cron monitoring guides, comparisons, and failure write-ups - [Background Job Monitoring: Built-In vs Dedicated vs DIY](https://crontinel.com/blog/background-job-monitoring-comparison/): Compare three ways to monitor Laravel background jobs: framework built-ins, dedicated SaaS monitors, and DIY heartbeat solutions. Find the right fit. - [Better Stack Killed Cron Monitoring: The Replacement](https://crontinel.com/blog/better-stack-cron-monitoring-gone/): Better Stack removed cron monitoring in April 2026. If your scheduler heartbeats stopped working overnight, here's what happened and the free replacement. - [Laravel Cron Job Runs Manually but Not on Schedule](https://crontinel.com/blog/cron-job-runs-manually-but-not-on-schedule/): If a Laravel cron job runs manually but not on schedule, check the crontab, working directory, and scheduler heartbeat. Here's how to find the cause. - [Cron Monitoring Guide 2026: Detect Failures Before Users Do](https://crontinel.com/blog/cron-monitoring-guide/): Complete guide to cron monitoring for engineering teams. Detect missed schedule runs, silent failures, worker stalls, and queue backpressure in any stack. - [Crontinel vs Cronitor vs CronRadar: 2026 Pricing Compared](https://crontinel.com/blog/cron-monitoring-pricing-compared-2026/): Compare cron monitoring pricing for 2026: Crontinel, Cronitor, CronRadar. Free tiers, per-monitor costs, Horizon support, and self-hosting options. - [Cron Scheduler Alternatives for Your Production Stack](https://crontinel.com/blog/cron-scheduler-alternatives/): Compare cron scheduler alternatives for production: system crontab, systemd timers, Kubernetes CronJobs, and Laravel task scheduling. Find the right fit. - [Monitoring Cron Jobs with Datadog: Setup and Limits](https://crontinel.com/blog/datadog-cron-monitoring/): Set up Datadog cron monitoring with dogwrap or DogStatsD, see where it falls short for Laravel and Horizon, and when a purpose-built tool fits better. - [Debugging Laravel Reverb Connection Drops in Production](https://crontinel.com/blog/debug-laravel-reverb-connection-drops/): Intermittent WebSocket drops in Laravel Reverb are hard to catch. Diagnose the root cause, monitor connection stability, and alert when clients drop. - [Debugging Silent Laravel Cron Failures in Production](https://crontinel.com/blog/debugging-silent-laravel-cron-failures/): Silent Laravel cron failures are hard to debug: the job never ran, the log is empty, and nobody got an alert. Find the real cause and make failures loud. - [Detect Cron Job Failures in Laravel: 5 Methods Compared](https://crontinel.com/blog/detect-cron-job-failures-laravel/): Five ways to detect cron job failures in Laravel, from log monitoring to dedicated tools. Each method's strengths, blind spots, and when to use it. - [Detect Laravel Queue Worker Stalls: When Workers Go Silent](https://crontinel.com/blog/detect-laravel-worker-stalls/): A Laravel queue worker that's alive but not processing jobs gives no alert and no error. Learn how to detect stalled workers, common causes, and fixes. - [How to Detect Silent Cron Failures in Laravel](https://crontinel.com/blog/detect-silent-laravel-cron-failures/): Laravel's scheduler runs your cron jobs but doesn't tell you when they fail. Here's how to detect silent failures before they become support tickets. - [Detecting Slow Laravel Queue Jobs Before They Crash Your App](https://crontinel.com/blog/detecting-slow-laravel-jobs/): Detect slow Laravel queue jobs, monitor Horizon performance, and catch degraded workers before users notice, with queue depth alerts and duration tracking. - [Monitoring Laravel Cron Jobs Inside Docker Containers](https://crontinel.com/blog/docker-laravel-cron-monitoring/): How to reliably monitor scheduled tasks when your Laravel app runs inside Docker — covering entrypoint scripts, zombie processes, and signal handling pitfalls. - [Monitoring AWS EventBridge Rules: Catch Silent Failures](https://crontinel.com/blog/eventbridge-cron-monitoring/): How AWS EventBridge cron monitoring works, why scheduled rules fail silently (missed triggers, IAM permissions, DLQ backlogs), and how to catch it. - [Laravel Horizon Paused: Detect It Before Customers Notice](https://crontinel.com/blog/horizon-paused-detection/): Run horizon:pause before a deploy, forget to resume, and jobs queue silently for hours. How to detect the paused state and automate the alert. - [In-Flight Jobs When Horizon Supervisors Restart](https://crontinel.com/blog/horizon-supervisor-restart-job-loss/): When a Horizon supervisor restarts in Laravel, in-flight jobs can be lost, retried, or orphaned. Learn how to detect and prevent job loss during restarts. - [Laravel Horizon Shows Running But Jobs Aren't Processing](https://crontinel.com/blog/horizon-supervisor-stopped-jobs-not-processing/): Horizon's status dashboard says everything is fine. Jobs are silently piling up. Here's why that happens and how to actually detect a dead supervisor. - [How to Monitor Horizon Jobs in Production](https://crontinel.com/blog/how-to-monitor-horizon-jobs-production/): Laravel Horizon has a great dashboard, but in production you must know when supervisors stop, queues pile up, or failed jobs accumulate. Set up monitoring. - [How to Set Up Laravel Cron Monitoring (The Right Way)](https://crontinel.com/blog/how-to-set-up-laravel-cron-monitoring/): A step-by-step guide to Laravel cron monitoring that works. Detect missed schedules, failed tasks, and silent cron failures before your users notice. - [Laravel Background Job Monitoring Checklist: What Teams Miss](https://crontinel.com/blog/laravel-background-job-monitoring-checklist/): A Laravel job monitoring checklist covering Horizon health, queue depth, cron run history, alerting, and deployment safety. Few teams check all five. - [What Are the Files in Laravel's bootstrap/cache? Explained](https://crontinel.com/blog/laravel-bootstrap-cache-files-explained/): A plain breakdown of config.php, packages.php, services.php, and routes-v7.php in Laravel's bootstrap/cache: what makes them and whether to commit them. - [Detecting Laravel Broadcast Failures Before Users Do](https://crontinel.com/blog/laravel-broadcast-failure-detection/): Broadcasting silently fails in production: Pusher disconnects, Reverb drops, Soketi restarts. Detect broadcast failures and monitor WebSocket health. - [Laravel Cron Job Not Running After Deploy: How to Catch It](https://crontinel.com/blog/laravel-cron-job-not-running-after-deploy/): Your cron jobs worked before the deploy, now they've stopped and the logs are empty. Here's why deploys break cron and how to detect it fast. - [Why Your Laravel Cron Job Isn't Running (And How to Fix It)](https://crontinel.com/blog/laravel-cron-job-not-running/): Laravel cron jobs fail silently in many ways. Diagnose the cause, from misconfigured server cron entries to scheduler bugs and silent exit code failures. - [Laravel Cron Monitoring Across Multiple Microservices](https://crontinel.com/blog/laravel-cron-monitoring-multi-microservices/): Monitor scheduled tasks across distributed Laravel services without losing visibility: unified dashboards, cross-service heartbeats, and failure points. - [Laravel Cron and Queue Monitoring Tools: 2026 Comparison](https://crontinel.com/blog/laravel-cron-queue-monitoring-tools/): Compare Laravel cron and queue monitoring tools for production: Cronitor, Healthchecks.io, Better Stack, Forge Heartbeats, Telescope, Horizon, and Crontinel. - [Laravel Cron Timezone Not Working? Fix ->timezone() Bugs](https://crontinel.com/blog/laravel-cron-timezone-issues/): Your Laravel scheduled task fires at the wrong time in production but works in dev. Why ->timezone() fails with DST and UTC offsets, and how to debug it. - [Laravel Cron vs Queue Monitoring — What's the Difference?](https://crontinel.com/blog/laravel-cron-vs-queue-monitoring/): Generic uptime monitors miss scheduler failures, and queue depth monitors miss Horizon supervisor death. Here's why you need both and what each one covers. - [Cron vs Queue in Laravel: Choosing the Right Pattern](https://crontinel.com/blog/laravel-cron-vs-queue-when-to-use/): Scheduled command or queued job? It depends on trigger source, execution guarantees, and failure recovery. Here's a decision framework with real examples. - [Failed Jobs in Laravel: Beyond the failed_jobs Table](https://crontinel.com/blog/laravel-failed-jobs-monitoring/): Your failed_jobs table only tells you a job already died. Here's how to catch rising failure rates before they become an outage. - [Detect and Fix Laravel Horizon Config-Environment Mismatches](https://crontinel.com/blog/laravel-horizon-config-env-mismatch/): When your Horizon config doesn't match the environment (wrong Redis host, stale supervisors, misplaced queues), jobs silently fail. Detect and prevent it. - [Laravel Horizon Workers Idle While Jobs Pile Up? 6 Fixes](https://crontinel.com/blog/laravel-horizon-idle-workers/): Horizon shows workers as running while 2,000 jobs pile up untouched. Here are the 6 real causes — and how to fix each one fast. - [Laravel Job Batching: Monitor and Alert on Failures](https://crontinel.com/blog/laravel-job-batching-monitoring/): How to detect and respond to Laravel job batch failures in production — covering cancellation, timeout, and silent degradation patterns. - [Laravel Nightwatch Monitoring: What It Does, What It Misses](https://crontinel.com/blog/laravel-nightwatch-monitoring/): A practical look at Laravel Nightwatch, the official APM tool: what it tracks for requests, jobs, and the scheduler, and its blind spots for heartbeats. - [Laravel Octane Doesn't Run the Scheduler (How to Catch It)](https://crontinel.com/blog/laravel-octane-scheduler-not-running/): Laravel Octane serves HTTP but does not run the scheduler. Why scheduled tasks silently stop after an Octane deploy, and how to monitor schedule:run. - [Queue Backpressure in Laravel: When Depth Spikes](https://crontinel.com/blog/laravel-queue-backpressure/): Your queue depth is climbing, jobs time out, and retries make it worse. See how backpressure builds in Laravel queues, why it cascades, and how to respond. - [Laravel Queue Depth Monitoring: Alert Before Backlogs](https://crontinel.com/blog/laravel-queue-depth-alert/): Queue depth spikes silently. Learn to query depth for Redis and database drivers, set thresholds per queue, and why oldest-job age is the metric you want. - [Laravel Queue Monitoring: Catch Failures Before Users Do](https://crontinel.com/blog/laravel-queue-monitoring-catch-failures/): Laravel queues fail silently. A job throws, gets buried, and nobody notices until a customer asks about their order. Here's how to monitor queues. - [Laravel Queue Priority: Stop Critical Jobs Getting Stuck](https://crontinel.com/blog/laravel-queue-priority-laravel/): Laravel queues process jobs FIFO by default. Without explicit priority configuration, payment confirmations sit behind welcome emails. Here's how to fix it. - [Laravel Queue Worker Died: How to Detect and Recover](https://crontinel.com/blog/laravel-queue-worker-died-detect-recover/): Queue workers die quietly. OOM kills, segfaults, and restart loops leave no trace while jobs pile up. Here's how to detect a dead worker early. - [Laravel Queue Worker Graceful Shutdown: No Lost Jobs](https://crontinel.com/blog/laravel-queue-worker-graceful-shutdown/): Configure Laravel queue workers for graceful shutdown on deploy so no jobs are lost or duplicated. Covers Horizon, Supervisor, and queue:work. - [Laravel Queue Worker Memory Leaks: Detect Them Early](https://crontinel.com/blog/laravel-queue-worker-memory-leak/): Queue workers run for hours or days and memory climbs until the process is killed. Learn how leaks happen in Laravel workers and how to detect them early. - [Detect Missed Laravel Schedule Runs Before They Cascade](https://crontinel.com/blog/laravel-schedule-missed-run-alert/): A missed Laravel schedule run can silently break your app. Learn to detect missed runs with native tools and heartbeat monitoring, and alert fast. - [Laravel withoutOverlapping(): Prevent Stuck Scheduled Tasks](https://crontinel.com/blog/laravel-schedule-withoutoverlapping-explained/): Learn how Laravel's withoutOverlapping() lock works, why stale mutexes skip jobs, how to clear them, and how to monitor skipped tasks. - [Laravel Scheduler Events: Custom Monitoring With Hooks](https://crontinel.com/blog/laravel-scheduler-events-monitoring/): Laravel's scheduler dispatches events on task start, finish, and failure. Learn to hook into ScheduledTaskFinished and wire real-time failure alerts. - [Laravel Scheduler Timezone Pitfalls: Wrong Cron Times](https://crontinel.com/blog/laravel-scheduler-timezone/): Why Laravel scheduled tasks fire at the wrong hour: how APP_TIMEZONE, schedule_timezone, server TZ, and CRON_TZ interact, the DST trap, and a fix checklist. - [Migrate from Better Stack Cron Monitoring to Crontinel](https://crontinel.com/blog/migrate-from-better-stack-cron-monitoring/): Better Stack removed cron monitoring in 2026. Audit heartbeats, remove dead pings, and switch your Laravel scheduler monitoring to Crontinel. - [How to Monitor Laravel pennant:purge in Production](https://crontinel.com/blog/monitor-laravel-pennant-purge/): A silent pennant:purge failure during deployment leaves users with stale feature flags. Here's how to monitor the purge command and catch failures early. - [How to Monitor Laravel Scheduled Tasks in Production](https://crontinel.com/blog/monitor-laravel-scheduled-tasks-production/): schedule:run failures are silent by default. Wire up event listeners, record exit codes and durations, and alert on missed or failed scheduled tasks. - [Monitoring Laravel Cron Jobs on Kubernetes: Full Guide](https://crontinel.com/blog/monitoring-kubernetes-cron-jobs/): Laravel's scheduler on Kubernetes adds failure modes: pod restarts wipe cron state, scaling creates duplicate runs, and dead pods leave jobs unfinished. - [Monitoring Custom Artisan Commands in Production](https://crontinel.com/blog/monitoring-laravel-artisan-commands/): Custom Artisan commands run critical business logic but are invisible to most monitoring. Instrument exit codes, duration, heartbeats, and alerts. - [Monitoring vs Observability for Laravel Cron Jobs](https://crontinel.com/blog/monitoring-vs-observability/): Monitoring tells you a cron job failed. Observability tells you why. Here's when each matters and how Laravel teams should combine them in production. - [Node.js Cron Monitoring: Detect Task Failures Early](https://crontinel.com/blog/nodejs-cron-monitoring/): Monitor Node.js cron jobs, scheduled tasks, and background workers. Detect missed runs, silent failures, and queue backpressure in node-cron and Bull. - [Open Source, Self Hosted, Free Cron Monitoring for Laravel](https://crontinel.com/blog/open-source-self-hosted-free-cron-monitoring/): Compare open source, self hosted, and free cron monitoring for Laravel. See what each path gives you and when a Laravel-native monitor is worth it. - [PagerDuty + Laravel: Auto-Create Incidents from Alerts](https://crontinel.com/blog/pagerduty-laravel-queue-cron-alerts/): Wire Laravel queue depth alerts and cron failures into PagerDuty with Events API v2. Dedup keys link fire and resolve events to one incident. - [Python Scheduled Task Monitoring: APScheduler, Celery, Cron](https://crontinel.com/blog/python-scheduled-task-monitoring/): Monitor Python scheduled tasks: APScheduler, Celery Beat, system cron, and custom schedulers. Detect missed runs, silent failures, and backpressure early. - [Laravel Queue Worker Memory Limits Without Restart Loops](https://crontinel.com/blog/queue-worker-memory-limit/): How Laravel's queue:work --memory flag differs from PHP memory_limit, how to choose a safe value, and how to configure Supervisor for clean worker recycling. - [What Happens to Horizon When Redis Drops](https://crontinel.com/blog/redis-connection-lost-horizon/): Redis goes down and Horizon loses its connection. Jobs vanish, supervisors crash, and the dashboard goes blank. Here's what breaks and what recovers. - [Cron Monitoring Alert Fatigue: Reduce Notification Noise](https://crontinel.com/blog/reduce-cron-alert-fatigue/): Too many cron alerts desensitize your team to real incidents. Classify severity, set smart grace periods, and cut noise without missing real failures. - [Detect Laravel schedule:run Boot Loops Before Cron Stops](https://crontinel.com/blog/schedule-run-boot-loop-detection/): When schedule:run crashes on boot, Supervisor restarts it every second and your real cron never fires. Learn to detect boot loops and their causes. - [thenping.me Is Dead: What Changed in Cron Monitoring](https://crontinel.com/blog/thenping-me-is-dead/): thenping.me was a go-to cron monitoring tool for Laravel developers until it was archived in January 2025. Here's what happened and what to use now. - [What Happens When Your Laravel Scheduler Stops Running](https://crontinel.com/blog/what-happens-when-laravel-scheduler-stops-running/): The Laravel scheduler depends on a single cron entry. When it breaks or deadlocks, tasks stop and you may not notice for days. Here's how to detect it. - [What is Cron Monitoring and Why Laravel Developers Need It](https://crontinel.com/blog/what-is-cron-monitoring-laravel/): Laravel cron jobs fail silently by default. Here's what that means, why it's dangerous, and how to detect failures before they become production incidents. - [Laravel Horizon Redis Keys Explained](https://crontinel.com/blog/what-laravel-horizon-redis-keys-mean/): A reference of every Redis key Laravel Horizon stores: what each contains, what it means operationally, and how to inspect it with redis-cli. - [Why Generic Cron Monitors Miss Laravel Horizon Failures](https://crontinel.com/blog/why-generic-cron-monitors-miss-horizon-failures/): Cronitor tells you a job ran. It can't tell you your Horizon supervisor is paused. Here's what's actually going on under the hood. - [Why Generic Uptime Monitors Miss Laravel Queue Failures](https://crontinel.com/blog/why-generic-uptime-monitors-miss-queue-failures/): Your uptime monitor shows green while queue depth climbs to 5,000 and customers wait. Here's why HTTP pings can't see Laravel queue failures. ## Use cases - [Use cases](https://crontinel.com/use-cases/): Monitoring setups by framework and job - [Cron Heartbeat Monitoring for Laravel Schedulers](https://crontinel.com/use-cases/cron-heartbeat-monitoring/): Use cron heartbeat monitoring to catch the moment schedule:run stops arriving, runs late, or silently skips a scheduled task in production. - [Monitoring Deploy Hooks and Post-Deploy Jobs in Laravel](https://crontinel.com/use-cases/deploy-hooks/): Deploy hooks kick off migrations, cache clears, and queue restarts. Crontinel monitors whether those post-deploy jobs ran and whether Horizon recovered. - [Monitoring Failed Job Retry Loops in Laravel Horizon](https://crontinel.com/use-cases/failed-job-retry/): A job that fails and retries forever burns queue workers without progress. Crontinel detects rising failed job rates and oldest job age spikes early. - [Incident Alert System for Laravel Cron and Queue Failures](https://crontinel.com/use-cases/incident-alert-system/): Route Laravel incident alerts to the right place with Slack, PagerDuty, and webhooks when cron jobs, queue workers, or scheduled tasks break. - [Laravel Cron Monitoring: Scheduled Tasks and Missed Runs](https://crontinel.com/use-cases/laravel-cron-monitoring/): Monitor every Laravel scheduled task in production so you catch missed runs, non-zero exits, and silent scheduler outages without instrumenting each task. - [Laravel Horizon Monitoring: Supervisors, Queues, Failures](https://crontinel.com/use-cases/laravel-horizon-monitoring/): Monitor Laravel Horizon in production so you catch paused supervisors, queue backlogs, and failed-job spikes without staring at the dashboard manually. - [Laravel Queue Monitoring: Depth, Failures, and Stuck Jobs](https://crontinel.com/use-cases/laravel-queue-monitoring/): Monitor Laravel queues in production. Alert on queue depth, failed job spikes, and oldest job age before customers notice slow background processing. - [Laravel Status Page for Cron and Queue Incidents](https://crontinel.com/use-cases/laravel-status-page/): Show customers and teammates when cron jobs, queue workers, or webhook delivery is delayed. Publish a Laravel status page for incidents that matter. - [Detecting When Laravel backup:clean Fails to Run](https://crontinel.com/use-cases/monitor-backup-clean/): Find out when php artisan backup:clean silently skips cleanup and old backups start filling your disk. Get alerted before storage costs spiral. - [Monitoring Laravel Backup Health Checks in Production](https://crontinel.com/use-cases/monitor-backup-monitor/): Learn how php artisan backup:monitor works, what backup health issues it catches, and how to get alerted when your Laravel backups are unhealthy. - [Monitoring backup:run Failures in Laravel Production](https://crontinel.com/use-cases/monitor-backup-run/): Detect when php artisan backup:run silently fails in production. Learn what causes backup command failures and how to get alerted before data loss. - [Monitor Celery Beat Tasks That Succeed and Do Nothing](https://crontinel.com/use-cases/monitor-celery-beat-tasks/): A Celery task can return SUCCESS after processing zero rows. Send one HTTP receipt per run, register the schedule, and get alerted on empty runs and runs that never start. - [Monitoring config:cache in Laravel Production](https://crontinel.com/use-cases/monitor-config-cache/): Watch Laravel's config:cache command in production so stale environment values, broken config files, and missed deploy hooks do not quietly break your app. - [Monitoring config:clear in Laravel Production](https://crontinel.com/use-cases/monitor-config-clear/): Watch Laravel's config:clear command in production so an accidentally cleared config cache, a failed rebuild, or a half-finished deploy step gets caught. - [Debug a Laravel Cron Job That Fails With No Log Output](https://crontinel.com/use-cases/monitor-cron-job-log-debugging/): Your Laravel cron job shows FAIL but the log is empty. Find the real error, from output redirection gotchas to missing env vars and silent exceptions. - [Monitoring Spatie Laravel-Backup in Production](https://crontinel.com/use-cases/monitor-db-backup/): Get alerted when laravel-backup fails, backup:run exits without completing, or scheduled database backups silently stop. Spatie laravel-backup patterns. - [Monitoring php artisan db:seed in Laravel Production](https://crontinel.com/use-cases/monitor-db-seed/): Detect when php artisan db:seed silently fails in production because of the --force prompt, missing autoload, or model validation errors. - [Detect When php artisan db:wipe Runs in Production](https://crontinel.com/use-cases/monitor-db-wipe/): php artisan db:wipe drops every table without running migrations back. Here's how to monitor for accidental db:wipe runs and recover before downtime. - [How to Monitor php artisan event:cache in Production](https://crontinel.com/use-cases/monitor-event-cache/): Monitor Laravel event:cache in production so you catch missing listeners, stale event maps, and silent registration failures before customers do. - [Monitoring event:clear in Laravel Production](https://crontinel.com/use-cases/monitor-event-clear/): Watch Laravel's event:clear command in production so an accidentally cleared event cache or a missed rebuild after deploy does not break event discovery. - [Monitoring Laravel Forge Cron Jobs in Production](https://crontinel.com/use-cases/monitor-forge-cron-jobs/): Laravel Forge schedules your cron entries and restarts daemons, but silent failures still slip through. Monitor Forge cron jobs and catch missed runs. - [Monitor GitHub Actions Scheduled Workflows for Missed Runs](https://crontinel.com/use-cases/monitor-github-actions-scheduled-workflows/): GitHub Actions scheduled workflows can silently stop triggering. Learn how to monitor cron-based workflows, detect missed runs, and alert before gaps grow. - [Monitoring horizon:continue in Laravel Production](https://crontinel.com/use-cases/monitor-horizon-continue/): Monitor Laravel's horizon:continue command in production with instant alerts for failures, slow execution, and unexpected exits. - [Monitoring horizon:pause in Laravel Production](https://crontinel.com/use-cases/monitor-horizon-pause/): Monitor Laravel's horizon:pause command in production with instant alerts, failure detection, and schedule tracking to keep your Horizon queues healthy. - [horizon:purge Not Cleaning Jobs? Detect Silent Failures](https://crontinel.com/use-cases/monitor-horizon-purge/): horizon:purge can exit with code 0 while Redis memory keeps climbing. Here is how to tell if it is actually working and how to get alerted when it isn't. - [Monitor horizon:stale-process-cleanup in Production](https://crontinel.com/use-cases/monitor-horizon-stale-process-cleanup/): Laravel Horizon workers can accumulate stale processes, consuming memory and blocking clean restarts. Here's how to detect when stale cleanup fails. - [Monitoring horizon:terminate in Laravel Production](https://crontinel.com/use-cases/monitor-horizon-terminate/): Monitor Laravel's horizon:terminate command in production with instant alerts, log tracking, and failure detection using Crontinel. - [Monitoring horizon:work in Laravel Production](https://crontinel.com/use-cases/monitor-horizon-work/): Monitor horizon:work in Laravel production with real-time alerts, failure tracking, and detailed logs to keep your queue workers running smoothly. - [Detect Idle Laravel Horizon Workers Not Processing Jobs](https://crontinel.com/use-cases/monitor-horizon-worker-starvation/): Your Horizon dashboard shows active supervisors and workers, but jobs sit in the queue for minutes. Catch worker starvation before it becomes an incident. - [How to Monitor php artisan cache:clear Cron Job Failures](https://crontinel.com/use-cases/monitor-laravel-cache-clear-cron-job-failed/): Monitor php artisan cache:clear cron jobs in production so you catch missed runs, non-zero exits, and stale cache before users see the breakage. - [How to Monitor Laravel cache:prune-stale-tags in Production](https://crontinel.com/use-cases/monitor-laravel-cache-prune-stale-tags/): Monitor Laravel's cache:prune-stale-tags command so stale tagged cache metadata does not build up silently when the scheduler, cache driver, or cron job fails. - [Detect When Laravel migrate:fresh Runs in Production](https://crontinel.com/use-cases/monitor-migrate-fresh/): A production migrate:fresh drops every table. Here's how to monitor for accidental destructive database commands and get alerted before you lose data. - [Detect When php artisan migrate:rollback Fails in Production](https://crontinel.com/use-cases/monitor-migrate-rollback/): Rolling back migrations in production is risky. Here's how to monitor migrate:rollback for partial failures, stuck batches, and accidental rollbacks. - [How to Monitor php artisan migrate in Production](https://crontinel.com/use-cases/monitor-migrate/): Monitor Laravel migrate runs in production so you catch failures, long-running schema changes, and rollback problems before they take your site down. - [How to Monitor php artisan model:prune in Production](https://crontinel.com/use-cases/monitor-model-prune/): Monitor Laravel model:prune in production so you catch missed pruning runs, skipped models, and silent cleanup failures before old data fills the database. - [Monitor node-cron Jobs That Run and Produce Nothing](https://crontinel.com/use-cases/monitor-node-cron-jobs/): node-cron runs inside your process, so a crash stops every job quietly. Wrap each job to post an HTTP receipt with a record count, and register the schedule to catch runs that never fire. - [How to Monitor php artisan notifications:prune in Production](https://crontinel.com/use-cases/monitor-notifications-prune/): Monitor Laravel notifications:prune in production so you catch missed runs, slow executions, and silent failures before the notifications table balloons. - [How to Monitor php artisan optimize in Production](https://crontinel.com/use-cases/monitor-optimize/): Monitor Laravel's optimize command in production so you catch config cache failures, route cache problems, and bootstrap errors before they break deploys. - [Monitor php artisan passport:purge in Laravel Production](https://crontinel.com/use-cases/monitor-passport-purge/): passport:purge cleans expired tokens, but when it fails your auth database grows unbounded. Here is how to detect purge failures before API speed drops. - [Monitoring php artisan pennant:purge in Laravel Production](https://crontinel.com/use-cases/monitor-pennant-purge/): pennant:purge removes stale feature flag data. When it stops running, flag storage grows unbounded. Here is how to monitor it and catch failures early. - [How to Monitor php artisan optimize:clear After Deployment](https://crontinel.com/use-cases/monitor-php-artisan-optimize-clear-after-deployment/): Make php artisan optimize:clear visible after Laravel deployments so stale config, route, view, and event cache problems do not survive unnoticed. - [Monitor Laravel Pulse Health in Production](https://crontinel.com/use-cases/monitor-pulse-check/): Your Pulse dashboard shows data from yesterday and nobody notices until the failed jobs graph flatlines. Here is how to catch Pulse outages early. - [Monitor Laravel pulse:restart in Production](https://crontinel.com/use-cases/monitor-pulse-restart/): pulse:restart runs silently during deploys and fails silently too. If the new Pulse worker cannot start, the dashboard freezes. Catch restart failures. - [How to Monitor php artisan queue:failed in Production](https://crontinel.com/use-cases/monitor-queue-failed/): Monitor Laravel queue:failed in production so you catch new failures, repeated job errors, and silent accumulation before users report it. - [How to Monitor php artisan queue:flush in Production](https://crontinel.com/use-cases/monitor-queue-flush/): Monitor Laravel's queue:flush command in production. Get alerts when failed jobs are purged unexpectedly or on an unapproved schedule. - [How to Monitor php artisan queue:forget in Production](https://crontinel.com/use-cases/monitor-queue-forget/): Monitor Laravel's queue:forget command in production. Get alerts when failed jobs are manually removed and their diagnostics disappear before review. - [Monitor Laravel Queue Processing Time and Slow Jobs](https://crontinel.com/use-cases/monitor-queue-latency/): Laravel queue workers are running but jobs take longer than expected. Here's how to detect queue latency degradation before it becomes an outage. - [How to Monitor php artisan queue:monitor in Production](https://crontinel.com/use-cases/monitor-queue-monitor/): Monitor Laravel queue:monitor in production so you catch backed-up queues, QueueBusy events, and scheduler failures before the backlog turns into an incident. - [How to Monitor php artisan queue:restart in Production](https://crontinel.com/use-cases/monitor-queue-restart/): Monitor Laravel queue:restart in production so you catch workers that never come back, cache mismatches, and silent queue stalls after deploys. - [How to Monitor php artisan queue:retry in Production](https://crontinel.com/use-cases/monitor-queue-retry/): Monitor Laravel's queue:retry command in production. Get alerts when retry storms, repeated failures, or bad batches make recovery worse. - [How to Monitor php artisan queue:work in Production](https://crontinel.com/use-cases/monitor-queue-work/): Monitor Laravel queue:work in production so you catch crashed workers, stale deploys, and memory leaks before your jobs start piling up. - [Laravel Queue Worker Timeout Monitoring](https://crontinel.com/use-cases/monitor-queue-worker-timeout/): Monitor Laravel queue worker timeouts, hanging jobs, and stale workers before your queue backs up. Crontinel catches timeout patterns after deploys. - [Monitoring Redis Queue Performance in Laravel Production](https://crontinel.com/use-cases/monitor-redis-queue-performance/): Redis-backed queues degrade silently: latency creeps up, throughput drops, and jobs pile up. Here's how to detect Redis queue performance issues early. - [How to Monitor Laravel Reverb Server in Production](https://crontinel.com/use-cases/monitor-reverb-server/): Laravel Reverb is a long-lived WebSocket server that can crash without notice. Detect when Reverb goes down, set up health checks, and get alerted early. - [routes-v7.php Explained: Laravel Route Cache Monitoring](https://crontinel.com/use-cases/monitor-route-cache/): What is bootstrap/cache/routes-v7.php? Learn how route:cache creates it, what breaks during rolling deploys, and how to get alerted when it is stale. - [Monitoring route:clear in Laravel Production](https://crontinel.com/use-cases/monitor-route-clear/): Watch Laravel's route:clear command in production so a cleared route cache does not leave old routes, missing endpoints, or a half-finished deployment. - [Monitor sanctum:prune-expired and Fix Token Cleanup](https://crontinel.com/use-cases/monitor-sanctum-prune-expired/): Monitor sanctum:prune-expired in production so you catch missed cleanup runs and silent failures before expired tokens bloat your personal_access_tokens table. - [Detect Laravel schedule:interrupt Failures After Deploy](https://crontinel.com/use-cases/monitor-schedule-interrupt/): Learn how to detect when php artisan schedule:interrupt fails to stop stale schedule:run processes after deployment, so old code does not keep running. - [How to Monitor php artisan schedule:run in Production](https://crontinel.com/use-cases/monitor-schedule-run/): Monitor Laravel's schedule:run command in production so you catch missed executions, slow runs, and silent scheduler failures before the missed jobs pile up. - [Monitoring php artisan schedule:work in Laravel Production](https://crontinel.com/use-cases/monitor-schedule-work/): Monitor Laravel's schedule:work daemon in production so you catch process crashes, memory leaks, and silent failures before your scheduled tasks stop running. - [Monitoring scout:flush in Laravel Production](https://crontinel.com/use-cases/monitor-scout-flush/): Track when Laravel Scout's scout:flush command runs in production to prevent accidental index wipes, catch deployment errors, and recover search data faster. - [Detect When Laravel scout:import Fails to Import All Records](https://crontinel.com/use-cases/monitor-scout-import/): Monitor Laravel Scout's scout:import command in production so you catch partial imports, memory exhaustion, and silent queue failures before search goes stale. - [Detect Laravel scout:sync-index-settings Failures](https://crontinel.com/use-cases/monitor-scout-sync-index-settings/): Monitor Laravel Scout's scout:sync-index-settings command to catch invalid config pushes, engine API rejections, and partial syncs before search degrades. - [Monitor Sidekiq Scheduled Jobs for Empty and Missed Runs](https://crontinel.com/use-cases/monitor-sidekiq-scheduled-jobs/): Sidekiq reports a job as processed when perform returns. Post one HTTP receipt from the job with a record count, and register the schedule to catch runs that never enqueue. - [Monitoring storage:link in Laravel Production](https://crontinel.com/use-cases/monitor-storage-link/): Monitor Laravel's storage:link command in deployment so you know the public symlink was created and your user uploads are reachable before traffic arrives. - [Monitor Supervisor Queue Worker Config in Laravel](https://crontinel.com/use-cases/monitor-supervisor-queue-worker-config/): A production-ready Supervisor config for Laravel queue workers, the settings that silently break processing, and how to detect misconfigured workers. - [Clearing and Monitoring Laravel Telescope Entries](https://crontinel.com/use-cases/monitor-telescope-clear/): Telescope entry missing after a job ran? It's not always a bug in your code — clear vs prune behavior and silent capture failures explained. - [Monitoring Laravel Telescope Prune in Production](https://crontinel.com/use-cases/monitor-telescope-prune/): Learn how php artisan telescope:prune works, why it fails silently, and how to detect when your Telescope data cleanup is not running. - [Monitoring Laravel Vapor Cron Jobs in Production](https://crontinel.com/use-cases/monitor-vapor-cron/): Laravel Vapor runs scheduled tasks through Lambda, not traditional cron. Here's how to monitor them, catch silent failures, and avoid Vapor's gaps. - [Monitoring view:cache in Laravel Production](https://crontinel.com/use-cases/monitor-view-cache/): Monitor Laravel's view:cache command in production so stale compiled views, missing templates, and permission errors do not silently break your app. - [Monitoring view:clear in Laravel Production](https://crontinel.com/use-cases/monitor-view-clear/): Monitor Laravel's view:clear command in production so stale compiled views from a previous release are reliably removed before the new cache is built. - [Multi-Tenant Laravel Job Monitoring in One Dashboard](https://crontinel.com/use-cases/multi-tenant-job-monitoring/): Monitor background jobs across many Laravel applications from one dashboard. Separate API keys, per-app thresholds, and team access for multi-app teams. - [Monitoring Background Jobs in Multi-Tenant Laravel Apps](https://crontinel.com/use-cases/multi-tenant/): In a multi-tenant Laravel app, one tenant's job failure can cascade to others. Crontinel monitors queue depth and failed job rates to catch it early. - [Open Source, Self-Hosted Status Page for Laravel Incidents](https://crontinel.com/use-cases/open-source-self-hosted-status-page/): Build an open source or self hosted status page for Laravel cron, queue, and webhook incidents without relying on a third-party status vendor. - [Production Cron Job Alerting for Laravel Schedules](https://crontinel.com/use-cases/production-cron-job-alerting/): Set up reliable cron job alerting for Laravel production apps. Know immediately when a scheduled task fails, runs late, or stops running entirely. - [Monitoring Prometheus Metrics in Laravel Production](https://crontinel.com/use-cases/prometheus-laravel-integration/): Laravel apps that expose Prometheus metrics often miss cron and queue failures. Pair Prometheus with targeted cron monitoring so nothing slips through. - [Set Up Laravel Queue Monitoring in Production: Guide](https://crontinel.com/use-cases/queue-monitoring-setup/): A step-by-step guide to Laravel queue monitoring in production, from choosing a queue driver to configuring Supervisor and tracking queue depth. - [SaaS Background Job Monitoring for Laravel Applications](https://crontinel.com/use-cases/saas-background-job-monitoring/): Revenue-critical background jobs need monitoring. Invoice generation, renewals, and webhook delivery can fail silently. Crontinel surfaces failures early. - [Setting Up spatie/laravel-schedule-monitor in Production](https://crontinel.com/use-cases/spatie-schedule-monitor-setup/): How to install, configure, and run spatie/laravel-schedule-monitor in production. Covers database setup, event listeners, missed schedules, and Crontinel. - [Webhook Monitoring for Laravel and API Teams](https://crontinel.com/use-cases/webhook-monitoring/): Monitor webhook delivery failures, retries, and stalled callback queues before customers notice. Crontinel turns webhook jobs into visible incidents. ## Comparisons - [Comparisons](https://crontinel.com/vs/): Crontinel compared with other monitoring tools - [Best Crontinel Alternatives for Uptime Monitoring](https://crontinel.com/vs/crontinel-alternatives/): Explore the best alternatives to Crontinel, including tools for uptime checks, cron monitoring, alerts, and team incident workflows. - [Crontinel vs Better Stack for Uptime Monitoring](https://crontinel.com/vs/crontinel-vs-better-stack/): Compare Crontinel and Better Stack on cron monitoring, uptime checks, alerting, incident management, and pricing. - [Crontinel vs Cronitor for Laravel Queue and Cron](https://crontinel.com/vs/crontinel-vs-cronitor/): Compare Crontinel vs Cronitor for Laravel apps so you can see the gap between ping-based dead-man alerts and Laravel-native Horizon and scheduler monitoring. - [Crontinel vs Cronofy: Scheduling API vs Job Monitoring](https://crontinel.com/vs/crontinel-vs-cronofy/): Cronofy is a scheduling and calendar API. Crontinel monitors whether your scheduled jobs actually ran. Here's where they differ and when you need both. - [Crontinel vs CronRadar for Laravel Cron and Queue Monitoring](https://crontinel.com/vs/crontinel-vs-cronradar/): CronRadar auto-discovers Laravel scheduled tasks. Crontinel adds Horizon supervisor state, queue depth, webhooks, status pages, and self-hosted OSS. - [Crontinel vs Datadog: Which is better for uptime monitoring?](https://crontinel.com/vs/crontinel-vs-datadog/): Crontinel vs Datadog for cron job and uptime monitoring. Compare pricing, features, setup time, and which tool fits your team. - [Crontinel vs Dead Man's Snitch for Laravel Monitoring](https://crontinel.com/vs/crontinel-vs-deadmanssnitch/): Dead Man's Snitch watches for cron pings. Crontinel watches your Laravel job layer: Horizon supervisors, queue depth, failed jobs, and scheduled tasks. - [Crontinel vs Forge Heartbeats: Beyond Ping Monitoring](https://crontinel.com/vs/crontinel-vs-forge-heartbeats/): Forge Heartbeats tells you a job ran. Crontinel tells you what happened after it ran, whether your queues are healthy, and if Horizon is actually working. - [Crontinel vs Healthchecks.io: Beyond Dead-Man Checks](https://crontinel.com/vs/crontinel-vs-healthchecks-io/): Healthchecks.io is a dead-man switch for cron jobs. Crontinel goes deeper: queue depth, Horizon supervisor state, and failed job rates, with no pings required. - [Crontinel vs LambdaTest: Testing vs Job Monitoring](https://crontinel.com/vs/crontinel-vs-lambdatest/): LambdaTest runs your test suite in the cloud. Crontinel monitors whether your production jobs are running. Here's the difference and when you need both. - [Crontinel vs Pingdom: Which is better for uptime monitoring?](https://crontinel.com/vs/crontinel-vs-pingdom/): Compare Crontinel and Pingdom on uptime monitoring, alerting, reliability, setup, and team fit, so you can choose the right tool for your team. - [Crontinel vs thenping.me: Active Laravel Alternative](https://crontinel.com/vs/crontinel-vs-thenping/): thenping.me was a Laravel-native cron monitoring tool, archived in January 2025. Crontinel is actively maintained, with Horizon and queue monitoring added. - [Crontinel vs UptimeRobot for Modern Monitoring Teams](https://crontinel.com/vs/crontinel-vs-uptimerobot/): Compare Crontinel and UptimeRobot for uptime monitoring, cron monitoring, alerting, and modern team workflows. ## Integrations - [Integrations](https://crontinel.com/integrations/): Alert channels and framework integrations - [Crontinel Discord Integration: Cron and Queue Alerts](https://crontinel.com/integrations/discord/): Route Crontinel Laravel alerts to Discord with a webhook URL. Get notified when scheduled tasks fail, queues back up, or Horizon supervisors pause. - [Crontinel Laravel Integration: Setup and Configuration](https://crontinel.com/integrations/laravel/): Optional Laravel deep package for schedule attach, queue depth, and Horizon. Outcome monitoring still uses the same HTTP receipt as curl, Node, Python, Sidekiq, and GitHub Actions. - [Crontinel Microsoft Teams Integration via Webhook](https://crontinel.com/integrations/microsoft-teams/): Send Crontinel Laravel monitoring alerts to Microsoft Teams using an Incoming Webhook connector on your team channel. - [Crontinel PagerDuty Integration for Laravel Monitoring](https://crontinel.com/integrations/pagerduty/): Create and auto-resolve PagerDuty incidents from Crontinel. Use Events API v2 with dedup keys to get one incident per failure, not a flood of alerts. - [Crontinel Slack Integration: Cron and Queue Alerts](https://crontinel.com/integrations/slack/): Send Crontinel alerts to Slack. Configure an incoming webhook, choose a channel, and get notified when a Laravel cron job fails or Horizon pauses. - [Crontinel Telegram Integration: Cron and Queue Alerts](https://crontinel.com/integrations/telegram/): Deliver Crontinel Laravel alerts to Telegram via bot API or webhook relay. Good for solo founders and small teams who live in Telegram. - [Crontinel Webhook Integration: Route Alerts to Any Endpoint](https://crontinel.com/integrations/webhook/): Send Crontinel alerts to any HTTPS endpoint via webhook. Build custom alert routing, connect to Opsgenie, or handle alerts in your own infrastructure. ## Documentation - [Docs home](https://docs.crontinel.com/): Documentation for installing and operating Crontinel - [Docs guide for assistants](https://docs.crontinel.com/llms.txt): Page index for the docs site ## Connect - [HTTP receipt](https://crontinel.com/#sec-install): POST /api/v1/ingest/cron with the app ingest key - [Laravel package](https://github.com/crontinel/laravel): Schedule attach, queue depth, and Horizon. Outcome metrics are on GitHub main, not the current Packagist release. ## Open source - [GitHub organization](https://github.com/crontinel): Source repositories - [Laravel package source](https://github.com/crontinel/laravel): Open source Laravel SDK ## Status - [Status page](https://status.crontinel.com): Crontinel service status