Мониторинг cron, когда тихий сбой недопустим
Cron падает без фанфар. Уникальный URL в конце скрипта — если пинг не пришёл вовремя, открывается инцидент и уходят уведомления.
Почему cron падает молча
Коды возврата утекают в логи, которые никто не читает; кончается место на диске; протухают креды; плывёт время в планировщике. Пользователи замечают проблему, когда данные «ниже по цепочке» перестают обновляться.
Что здесь называется heartbeat
После успешной работы скрипт шлёт HTTP-запрос в SitePuls. Отдельный демон не нужен — достаточно curl или любого HTTP-клиента в конце задачи.
Нет ping — нет успешного запуска
Ожидаете запуск каждый час — задайте интервал и grace. Нет ping в окне — монитор в DOWN, уходят уведомления.
Примеры: бэкапы, синхронизации, отчёты
Ночные дампы БД, ETL, выставление счетов, прогрев кэша — всё, что должно срабатывать по расписанию, даже если никто не заходит в админку.
Зачем это рядом с мониторингом API
API-мониторы проверяют «наружу»; heartbeat — что фоновые и пакетные задачи реально отработали. Вместе закрывают синхронные и асинхронные сценарии.
Serverless и контейнеры
Если по завершении функция может вызвать HTTPS — она может отправить heartbeat.
Интервал и запас по времени
Долгим задачам нужны более широкие окна и больший grace, иначе алерт придёт при нормальной длительности прогона.
Чего SitePuls не делает
SitePuls не ставит распределённые блокировки между задачами и не заменяет разбор логов — он снаружи отвечает на вопрос: сработало ли расписание.
Что можно проверять в SitePuls на этой странице
- Надёжность cron через heartbeat: задача вызывает уникальный URL при успешном завершении.
- Если запрос не пришёл в ожидаемое окно (с учётом grace), heartbeat помечается как сбойный.
- Агент не нужен — только исходящий HTTPS из вашей среды.
Куда уходят оповещения об инцидентах
- Адреса электронной почты в контактах получают письма при открытии и закрытии инцидентов (в рамках настроек уведомлений).
- Уведомления в Telegram через бота SitePuls после привязки чата к контакту (включая сценарий /start для ожидающих контактов).
- HTTPS-вебхуки с JSON: тип события, идентификаторы монитора, статус, время, при необходимости id инцидента и короткое сообщение — для своих интеграций.
- Режим Slack-compatible incoming webhook: отдельный формат полезной нагрузки в настройках контакта.
Вопросы и ответы
Это то же самое, что /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 в скрипт, задайте интервал и контакты.