Built in Europe. Monitoring worldwide.

Monitoring heartbeat

Nocna kopia zapasowa, która cicho przestała działać, to awaria, której nikt nie widzi. Niech każde zadanie zgłasza się samo i dowiedz się o przebiegu, którego nie było.

Kontrola, która działa wewnątrz twojej infrastruktury

Każda inna nasza kontrola pyta z zewnątrz: czy port jest otwarty, czy strona odpowiada, czy rekord nadal istnieje. Zadanie cron nie odpowie na żadne z tych pytań — działa na maszynie, do której nikt nie ma dostępu, nie tworzy żadnego endpointu, a gdy cicho przestanie działać, jedynym objawem jest kopia, której nikt nie zrobił, albo faktura, której nikt nie wysłał. Heartbeat to odwraca. Pulsitor daje zadaniu prywatny token, zadanie wysyła go w nagłówku na jeden stały adres na końcu każdego udanego przebiegu, a my pilnujemy zegara. Gdy okno minie bez pingu, incydent otwiera się sam i idzie tymi samymi kanałami jak przy każdej innej kontroli.

Crontab
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping

Doczepione po komendzie, więc nieudana kopia nigdy nie zgłosi sukcesu.

Jak działa kontrola heartbeat

To, w czym Pulsitor jest mocny od pierwszego dnia.

01

Zadanie zgłasza się samo

Dodaj jedną linię na końcu wpisu cron, workera lub skryptu wdrożeniowego. Wystarczy żądanie GET, POST lub HEAD z tokenem monitora w nagłówku — żadnego agenta, biblioteki ani niczego do instalacji.

02

Okres i zapas ustalasz ty

Powiedz, jak często zadanie ma się zgłaszać — od minuty do tygodnia — i o ile może się spóźnić, zanim uznamy to za pominięcie. Kopia, która zwykle trwa dwadzieścia minut, dostaje dwadzieścia minut tolerancji.

03

Incydent otwiera cisza

Gdy okno minie bez pingu, incydent zaczyna się w chwili, w której zgłoszenie miało nadejść, a nie gdy to zauważyliśmy. I zamyka się sam, gdy zadanie zgłosi się ponownie.

Co się tym monitoruje

Wszystko, co ma działać według harmonogramu i nie ma własnego adresu.

Zadania cron

Nocne kopie, przebiegi fakturowania, importy, rozgrzewanie cache. Klasyka: linia w crontabie, która przestała działać przy przebudowie serwera i nikt nie zauważył tego miesiąc.

Workery kolejek

Worker, który padł, cicho zostawia za sobą rosnącą kolejkę. Heartbeat z końca każdej partii mówi ci, że naprawdę konsumuje, a nie tylko widnieje na liście procesów.

Kopie i eksporty

Zgłaszaj się dopiero wtedy, gdy zrzut się skończył i upload został potwierdzony. Kopia, która zgłasza się przed sukcesem, jest gorsza niż brak monitoringu.

Urządzenia i agenci

Urządzenia IoT, edge boxy i skrypty za NAT-em, do których nic z internetu nie dotrze. Z zewnątrz ich nie spingujesz, ale odezwać się potrafią.

Jedna linia w zadaniu, które już masz

Cała integracja to jedno żądanie: twój token w nagłówku, wysłany na końcu przebiegu, gdy praca faktycznie się udała.

Crontab

0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping

Doczepione po komendzie, więc nieudana kopia nigdy nie zgłosi sukcesu.

Skrypt shell

#!/bin/sh
set -e

pg_dump mydb | gzip > /backups/mydb.sql.gz
aws s3 cp /backups/mydb.sql.gz s3://backups/

curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping

Krótki timeout i kilka ponowień nie pozwolą wolnej sieci otworzyć fałszywego incydentu.

Kod aplikacji

Http::withHeaders(['X-Heartbeat-Token' => $token])
    ->timeout(10)
    ->retry(3, 200)
    ->get('https://external-services.pulsitor.com/heartbeat/ping');

Wystarczy dowolny klient HTTP. Z odpowiedzi nie czytamy nic poza tym, że nadeszła.

Dlaczego monitorować zadanie w ten sposób

Wychwytuje cichą awarię

Zadanie, które wcale się nie uruchomi, nie zgłosi błędu ani nie zapisze loga. Jedynym sygnałem jest jego brak — i właśnie to heartbeat jest zbudowany zauważyć.

Sięga tam, gdzie sondy nie

Za firewallem, na laptopie, w sieci wewnętrznej, na urządzeniu bez adresu publicznego. Jeśli potrafi wysłać żądanie na zewnątrz, można je monitorować.

Te same incydenty, te same kanały

Pominięty heartbeat to incydent jak każdy inny: te same kanały, ta sama historia i te same strony statusu, które twoi klienci już czytają.

Monitoring heartbeat w liczbach

Co kontrola faktycznie robi.

Monitoring heartbeat w liczbach
Właściwość Wartość
Co jest sprawdzane Czy żądanie z twojego zadania dotrze w oczekiwanym oknie
Akceptowane metody GET, POST, HEAD
Jak monitor jest rozpoznawany Token w nagłówku X-Heartbeat-Token lub jako Authorization: Bearer
Oczekiwany okres od 1 minuty do 7 dni
Tolerancja od 30 sekund do 24 godzin
Kiedy otwiera się incydent Jedno oczekiwane okno minęło bez pingu
Kanały powiadomień 14
Dostępne w Plany płatne, od 6 EUR miesięcznie

Pytania o monitoring heartbeat

Co heartbeat ci powie, a czego nie.

Czym dokładnie jest monitor heartbeat?

Monitorem bez celu. Zamiast tego, żebyśmy my wywoływali twoją usługę, twoje zadanie wywołuje przy każdym przebiegu jeden nasz adres, niosąc własny token w nagłówku. Kontrola przechodzi, gdy żądanie dotrze na czas, i nie przechodzi, gdy nie dotrze.

Kiedy zadanie ma wysłać ping?

Na samym końcu, gdy praca się udała. Wywołanie na starcie zgłosiłoby przebieg, który może jeszcze padnąć w połowie — a to właśnie ta awaria, którą chcesz wychwycić.

Po co jest tolerancja?

Prawdziwe zadania się rozjeżdżają. Tolerancja mówi, o ile zgłoszenie może się spóźnić, zanim monitor je odpuści — więc kopia, która czasem trwa dziesięć minut dłużej, nikogo nie budzi w nocy.

Dlaczego token jest w nagłówku, a nie w adresie URL?

Bo sekret w adresie nie pozostaje sekretem: trafia do logów dostępu, do każdego proxy po drodze, do historii powłoki i na listę procesów maszyny, na której działa zadanie. W nagłówku nie trafia do żadnego z nich, a wszystkie monitory wywołują ten sam adres.

Czy mogę monitorować zadanie za firewallem?

Tak, i o to właśnie chodzi. Nic nie musi dosięgnąć twojej maszyny — zadanie potrzebuje tylko móc wysłać żądanie HTTPS na zewnątrz.

Co się stanie, gdy zadanie znów się zgłosi?

Incydent rozwiąże się sam przy najbliższym pingu, a powiadomienie o rozwiązaniu pójdzie tymi samymi kanałami, którymi przyszedł alarm.

Czy monitoring heartbeat jest w planie darmowym?

Nie. Monitory heartbeat są częścią planów płatnych, obok kontroli DNS, SSL i wygaśnięcia domeny.

Monitoring zadania w 3 krokach

01.

Utwórz monitor heartbeat, nazwij go od zadania i określ, jak często ma się zgłaszać.

02.

Skopiuj token do zadania i wyślij go w nagłówku na końcu każdego udanego przebiegu.

03.

Wybierz kanały powiadomień, a pilnowanie zegara zostaw nam.

Zacznij