Мониторинг Cron

Cron-мониторы позволяют отслеживать задачи по расписанию (резервные копии, пакетную обработку, регулярные скрипты) и получать уведомления, если они не запустились вовремя. Так вы можете быть уверены, что важные фоновые процессы всегда работают как ожидается.

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

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

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

Ключевые возможности

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

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

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

Добавление первого cron-монитора

Чтобы добавить монитор, перейдите в свой проект → Мониторы → Добавить монитор.

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

Тип монитора

Выберите тип монитора 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

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

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

Вы можете измерять, сколько выполняется ваша задача, отправляя два запроса:

  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-монитор!