Створіть монітор, додайте один рядок до вашого job'а і дайте Cronitorex зіставити пінги у хронологію. Коли пінг запізнюється чи відсутній, сповіщення досягає вас протягом 60 секунд.
Оберіть назву на кшталт db-backup і скажіть Cronitorex, як часто job має виконуватися. Цей розклад стає контрактом, який має дотримуватися ваш job.
Надсилайте run на старті job'а і complete чи fail при завершенні. Будь-що, що може надіслати HTTP-запит, може надіслати пінг.
Cronitorex будує хронологію з ваших пінгів, виявляє пропущені та невдалі запуски і сповіщає вас через email, Telegram, Discord, Slack чи вебхук.
Оберіть, що підходить вашому стеку. Кожен варіант звертається до того самого API з тими самими трьома станами: run, complete, fail.
0 2 * * * curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=run" >/dev/null; /usr/local/bin/backup.sh && curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=complete" >/dev/null || curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=fail" >/dev/null
#!/usr/bin/env bash
set -euo pipefail
ping() {
curl -fsS "https://api.cronitorex.com/ping/db-backup?status=$1" \
-H "Authorization: Bearer $CRONITOREX_API_KEY" >/dev/null
}
ping run
if /usr/local/bin/backup.sh; then
ping complete
else
ping fail
fi import os, requests
API = "https://api.cronitorex.com/ping/db-backup"
HEADERS = {"Authorization": "Bearer " + os.environ["CRONITOREX_API_KEY"]}
requests.get(API, params={"status": "run"}, headers=HEADERS)
try:
run_backup()
requests.get(API, params={"status": "complete"}, headers=HEADERS)
except Exception:
requests.get(API, params={"status": "fail"}, headers=HEADERS)
raise curl -fsS "https://api.cronitorex.com/ping/db-backup?status=run" \ -H "Authorization: Bearer $CRONITOREX_API_KEY" /usr/local/bin/backup.sh curl -fsS "https://api.cronitorex.com/ping/db-backup?status=complete" \ -H "Authorization: Bearer $CRONITOREX_API_KEY"
Тиша: це теж сигнал. Cronitorex очікує наступного запуску протягом заданого вами інтервалу, плюс пільговий період, що поглинає звичайні коливання.
Пінг run ще не прийшов, але пільговий період усе ще відкритий. Запуск позначається як запізнілий, і жодне сповіщення не надсилається.
Пільговий період минув без жодного пінгу. Cronitorex викликає сповіщення про пропущений запуск: job взагалі не виконався.
Пінг fail, або пінг run без завершення до кінця часового ліміту, позначає запуск як провалений і сповіщає негайно.
Пінг: це один HTTPS-запит. Зіставлення, виявлення і сповіщення відбуваються на стороні Cronitorex.
Зареєструйтеся, отримайте API-ключ, вставте curl у свій cron. Ось і все.