Monitoring crona

Dowiedz się, kiedy zaplanowane zadanie w ogóle się nie uruchomiło

Backup, który po cichu przestał się wykonywać, wygląda dokładnie jak działający — do chwili, gdy go potrzebujesz. Twoje zadanie pinguje AlertSleep po zakończeniu, a my alarmujemy, gdy ten ping nie przyjdzie.

Nocne rozliczenie

DZIAŁA
Harmonogram Codziennie o 03:00 Europe/Warsaw
Ostatni ping 3 minuty temu · exit 0 · 48 s
Następny oczekiwany za 23 godziny
Margines 15 minut
0 3 * * * /usr/local/bin/billing-run \
  && curl -fsS https://api.alertsleep.com/v1/ping/YOUR-TOKEN

Jedna linijka w crontabie

Bez agenta, bez biblioteki, bez reguł firewalla poza zwykłym HTTPS. Jeśli maszyna ma dostęp do internetu, zdoła się zgłosić.

1

Utwórz check

Opisz, kiedy zadanie ma się wykonywać i o ile może się spóźnić, zanim zechcesz o tym usłyszeć. Dostajesz unikalny adres do pingowania.

2

Wywołaj adres po zakończeniu zadania

Dopisz jedno wywołanie curla do polecenia, które i tak uruchamiasz. Nic więcej w zadaniu się nie zmienia.

3

My pilnujemy ciszy

AlertSleep co minutę sprawdza zadania po terminie. Minie okno — leci alert, również za pierwszym razem, gdy zadanie przestaje się uruchamiać.

Dwa sposoby na określenie, kiedy zadanie ma działać

Wybierz ten, który pasuje do tego, jak myślisz o zadaniu.

Co N minut

Dla zadań cyklicznych: opróżnianie kolejki co pięć minut, synchronizacja co godzinę. Podajesz interwał i tyle.

Wyrażenie cron

Dla zadań związanych z zegarem albo kalendarzem. Wklej to samo wyrażenie, którego używa Twój crontab, a check pójdzie dokładnie za nim.

Twoja strefa czasowa, nie nasza

Harmonogram cron liczy się w wybranej przez Ciebie strefie, więc zadanie przypięte do 03:00 czasu lokalnego zostaje o 03:00 także po zmianie czasu.

Margines spóźnienia

Prawdziwe zadania startują z opóźnieniem i czasem się ciągną. Ustal, ile spóźnienia jest normalne, a alarm podniosą tylko rzeczywiste przekroczenia.

Trzy sygnały, dowolny klient HTTP

Działają GET, POST i HEAD, więc curl, wget, PowerShell albo dwulinijkowe wywołanie HTTP z wnętrza zadania są równie dobre.

Sukces

Zadanie się zakończyło. To jedyny sygnał, którego check potrzebuje — cała reszta jest opcjonalna.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN

Start

Wywołaj przy starcie zadania, a AlertSleep zapisze, ile trwa każde uruchomienie, a nie tylko że się odbyło.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN/start

Porażka

Zadanie się wykonało i samo wie, że poszło źle. Jawna porażka alarmuje natychmiast, zamiast czekać na przekroczenie harmonogramu.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN/fail

Opcjonalne szczegóły

Wyślij razem z pingiem kod wyjścia, czas trwania albo krótką wiadomość. Pole, którego nie umiemy odczytać, zostaje pominięte, a heartbeat i tak jest zapisany — zepsuty dodatek nigdy nie kosztuje Cię samego sygnału.

curl -fsS -X POST \
  https://api.alertsleep.com/v1/ping/YOUR-TOKEN \
  -d exit_code=0 \
  -d duration_ms=48213 \
  -d message="1482 invoices"

Kiedy ping nie przychodzi

Checki cronowe alarmują mailem i w panelu AlertSleep.

Alert e-mail

Wysyłany raz, gdy check pada — z harmonogramem, marginesem i godziną ostatniego otrzymanego pinga.

Powiadomienie w aplikacji

Ten sam alert trafia na listę powiadomień, więc check, który padł w nocy, rano wciąż jest widoczny.

Informacja o powrocie

Gdy zadanie znów się zgłosi, dostajesz informację, że wróciło do normy. Dopóki check leży, alert się nie powtarza.

Checki cronowe w każdym planie

Łącznie z darmowym. Bez karty, żeby sprawdzić, czy Twoje zadania faktycznie się wykonują.

Darmowy
2
checki cronowe
Basic
10
checki cronowe
Professional
50
checki cronowe

Najczęściej zadawane pytania

Czym jest monitoring crona?

Monitoring crona — zwany też monitoringiem heartbeat albo czuwakiem — pilnuje sygnału, który ma przyjść. Twoje zaplanowane zadanie wywołuje adres po zakończeniu; jeśli to wywołanie nie dotrze na czas, dostajesz alert. To odwrotność monitoringu uptime, gdzie to my dzwonimy do Ciebie.

Dlaczego nie wystarczy sprawdzać kodu wyjścia w skrypcie?

Kod wyjścia istnieje tylko wtedy, gdy zadanie w ogóle się wykonało. Najbardziej bolą awarie, w których nie uruchomiło się nic: wpis w crontabie został skasowany, serwer przebudowany, kontener nigdy nie wystartował, dysk się zapełnił. Zadanie bez wyniku i bez błędu jest nie do odróżnienia od zdrowego, chyba że ktoś pilnuje jego nieobecności.

Czy działa z Kubernetes CronJob, timerami systemd albo Harmonogramem zadań Windows?

Tak. Check nie zakłada niczego o crontabie — potrzebuje tylko, żeby zadanie wykonało żądanie HTTPS po zakończeniu. Zgłosi się każdy harmonogram, który potrafi uruchomić curla, i każdy program, który umie wywołać HTTP.

Co, jeśli zadanie się wykonuje, ale trwa znacznie dłużej niż zwykle?

Wywołaj endpoint start na początku i endpoint sukcesu na końcu, a czas każdego uruchomienia zostanie zapisany. To margines decyduje, ile spóźnienia tolerujemy, zanim uznamy check za położony.

Czy adres do pingowania to sekret?

Tak. Token w adresie jest jedynym poświadczeniem na endpoincie przyjmującym nieuwierzytelnione wywołania, więc traktuj go jak hasło: trzymaj poza publicznymi repozytoriami i poza logami, którymi się dzielisz.

Dowiedz się dziś w nocy, a nie w przyszłym kwartale

Dopisz jedno wywołanie curla do najważniejszego zaplanowanego zadania i dowiedz się, kiedy następnym razem się nie uruchomi.

Rozpocznij Darmowy Monitoring