Мониторинг cron, когда тихий сбой недопустим

Cron падает без фанфар. Уникальный URL в конце скрипта — если пинг не пришёл вовремя, открывается инцидент и уходят уведомления.

Почему cron падает молча

Коды возврата утекают в логи, которые никто не читает; кончается место на диске; протухают креды; плывёт время в планировщике. Пользователи замечают проблему, когда данные «ниже по цепочке» перестают обновляться.

Что здесь называется heartbeat

После успешной работы скрипт шлёт HTTP-запрос в SitePuls. Отдельный демон не нужен — достаточно curl или любого HTTP-клиента в конце задачи.

Нет ping — нет успешного запуска

Ожидаете запуск каждый час — задайте интервал и grace. Нет ping в окне — монитор в DOWN, уходят уведомления.

Примеры: бэкапы, синхронизации, отчёты

Ночные дампы БД, ETL, выставление счетов, прогрев кэша — всё, что должно срабатывать по расписанию, даже если никто не заходит в админку.

Зачем это рядом с мониторингом API

API-мониторы проверяют «наружу»; heartbeat — что фоновые и пакетные задачи реально отработали. Вместе закрывают синхронные и асинхронные сценарии.

Serverless и контейнеры

Если по завершении функция может вызвать HTTPS — она может отправить heartbeat.

Интервал и запас по времени

Долгим задачам нужны более широкие окна и больший grace, иначе алерт придёт при нормальной длительности прогона.

Чего SitePuls не делает

SitePuls не ставит распределённые блокировки между задачами и не заменяет разбор логов — он снаружи отвечает на вопрос: сработало ли расписание.

Вопросы и ответы

Это то же самое, что /heartbeat-monitoring?

Да: здесь тот же сценарий heartbeat, что и на странице /heartbeat-monitoring, но с акцентом на cron.

Один URL на несколько задач?

Заведите отдельный монитор на каждую задачу — так видно, какой пайплайн не отработал.

Какие каналы уведомлений?

Email, Telegram и webhook.

Могут ли задачи выполняться параллельно?

Порядок и параллельность задач настраиваете вы в планировщике; SitePuls видит только факт: пришёл ли ping в окно.

Что если задача иногда дольше интервала?

Увеличьте интервал или запас по времени (grace), чтобы покрыть худший по длительности прогон.

SitePuls сам запускает мой cron?

Нет. SitePuls только принимает ping; расписание и запуск cron по-прежнему на вашей стороне.

А планировщик заданий Windows?

Подойдёт всё, что может сделать HTTP GET/POST на URL heartbeat по завершении задачи.

С чего начать?

Создайте heartbeat-монитор, скопируйте URL в скрипт, задайте интервал и контакты.