Мониторинг Cron

Cron-мониторы дают каждой задаче по расписанию (резервной копии, пакетной обработке или регулярному скрипту) уникальный URL для пинга и оповещают вас, когда пинг опаздывает или отсутствует. Задача помечается как деградировавшая, если пропустила период, и как упавшая, если пропустила ещё и отсрочку.

Как и с другими мониторами, когда cron-задача падает, вы можете вместе с командой устранить инцидент и при желании обновить страницу статуса.

Вот пример того, как выглядит список ваших cron-мониторов:

Список cron-мониторов

Что делает cron-монитор?

  • Проверка того, что cron-задачи выполняются вовремя (по пингам от самих задач).
  • Оповещение, если задача опаздывает или не завершается.
  • Оповещения через Slack, email, SMS, телефонный звонок и другие каналы.

Если нажать на cron-монитор, вы увидите подробности:

Подробности cron-монитора

Как добавить cron-монитор?

Перейдите в свой проект → Мониторы → Добавить монитор, выберите Cron/Heartbeat, затем направьте задачу на сгенерированный URL и задайте её период и отсрочку.

Добавить монитор

Тип монитора

Выберите тип монитора Cron/Heartbeat.

Тип монитора Cron

Для вас будет сгенерирован уникальный URL. Ваша cron-задача должна отправлять HTTP-запрос (HEAD, GET или POST) на этот URL при каждом запуске.

Проверка успешна, если

Cron-монитор считается успешным, когда задача пингует сгенерированный URL по расписанию. Вы можете настроить:

  • Период: как часто должна выполняться задача (например, каждые 15 минут).
  • Отсрочка: дополнительное время, после которого задача считается упавшей.

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

Если истекла отсрочка, а пинга по-прежнему нет, монитор будет помечен как упавший.

Вы можете настроить оповещения, чтобы получать уведомления, когда задача падает, деградирует или восстанавливается.

Сигнал о сбое

Отправьте запрос на URL монитора с добавленным /fail, чтобы пометить задачу как упавшую, даже если она выполнилась и отправила пинг.

Это удобно, если ваш скрипт столкнулся с ошибкой и вы хотите, чтобы Instatus сразу зафиксировал сбой задачи.

  • Пинг об успехе: https://cron.instatus.com/your-unique-url
  • Пинг о сбое: https://cron.instatus.com/your-unique-url/fail

При получении сигнала о сбое монитор будет помечен как упавший, а оповещения отправятся немедленно согласно вашим настройкам оповещений.

Измерение времени выполнения задачи

Отправьте два запроса: /start при старте задачи и пинг об успехе или сбое при её завершении — Instatus запишет время между ними как время выполнения задачи:

  1. Сигнал о старте: отправьте запрос на /start, когда задача начинается
  2. Сигнал об успехе или сбое: отправьте запрос на базовый URL, когда задача завершается или падает
  • Пинг о старте: https://cron.instatus.com/your-unique-url/start
  • Пинг об успехе: https://cron.instatus.com/your-unique-url
  • Пинг о сбое: https://cron.instatus.com/your-unique-url/fail

Время между сигналами о старте и об успехе будет записано как время выполнения задачи. Это помогает отслеживать производительность и находить задачи, которые выполняются дольше ожидаемого.

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

Поздравляем, вы добавили свой первый cron-монитор!