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ŁA0 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ć.
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.
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.
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ą.
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