Crie um monitor, adicione uma linha ao seu job e deixe o Cronitorex correlacionar os pings em uma linha do tempo. Quando um ping atrasa ou não chega, o alerta te alcança em 60 segundos.
Escolha um nome como db-backup e diga ao Cronitorex com que frequência o job deveria rodar. Esse horário vira o contrato que seu job precisa cumprir.
Envie run quando o job começa e complete ou fail quando termina. Qualquer coisa capaz de fazer uma requisição HTTP pode enviar um ping.
O Cronitorex constrói uma linha do tempo a partir dos seus pings, detecta execuções perdidas e com falha, e te avisa por email, Telegram, Discord, Slack ou webhook.
Escolha o que se encaixa no seu stack. Cada variante fala com a mesma API e com os mesmos três estados: 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"
O silêncio também é um sinal. O Cronitorex espera a próxima execução dentro do intervalo que você definiu, mais um período de tolerância que absorve variações normais.
O ping run ainda não chegou, mas o período de tolerância continua aberto. A execução é marcada como atrasada e nenhum alerta é enviado.
O período de tolerância passou sem nenhum ping. O Cronitorex dispara um alerta de execução perdida: o job simplesmente não rodou.
Um ping fail, ou um ping run sem encerramento antes do limite de tempo, marca a execução como falha e alerta imediatamente.
Um ping é uma única requisição HTTPS. A correlação, a detecção e os alertas acontecem do lado do Cronitorex.
Cadastre-se, gere uma API key, cole o curl no seu cron. É só isso.