Built in Europe. Monitoring worldwide.

Heartbeat monitoring

Nočná záloha, ktorá potichu prestala bežať, je výpadok, ktorý nikto nevidí. Nechajte každú úlohu hlásiť sa a dozviete sa o behu, ktorý nenastal.

Kontrola, ktorá beží vo vašej infraštruktúre

Každá iná naša kontrola sa pýta zvonku: je port otvorený, odpovedá stránka, existuje ešte záznam. Cron úloha neodpovie ani na jednu z nich — beží na stroji, ku ktorému sa nikto nedostane, nevytvára žiadny endpoint, a keď potichu prestane, jediným príznakom je záloha, ktorú nikto neurobil, alebo faktúra, ktorú nikto neposlal. Heartbeat to obracia. Pulsitor dá úlohe privátny token, úloha ho na konci každého úspešného behu pošle v hlavičke na jednu pevnú adresu a my sledujeme hodiny. Keď okno prejde bez pingu, incident sa otvorí sám a putuje rovnakými kanálmi ako pri každej inej kontrole.

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

Zaradené za príkaz, takže neúspešná záloha nikdy neohlási úspech.

Ako funguje heartbeat kontrola

Čím je Pulsitor silný hneď po nasadení.

01

Úloha sa hlási sama

Pridajte jeden riadok na konec cron záznamu, workera alebo deploy skriptu. Stačí GET, POST alebo HEAD požiadavka s tokenom monitoringu v hlavičke — žiadny agent, žiadna knižnica, nič na inštaláciu.

02

Periódu aj rezervu určujete vy

Povedzte, ako často sa má úloha hlásiť — od minúty po týždeň — a o koľko môže meškať, kým to počítame ako zmeškané. Záloha, ktorá bežne trvá dvadsať minút, dostane dvadsať minút tolerancie.

03

Incident otvorí ticho

Keď okno prejde bez pingu, incident začína v momente, kedy malo hlásenie prísť, nie keď sme si to všimli. A sám sa uzavrie, len čo sa úloha znovu ohlási.

Čo sa tým dá sledovať

Všetko, čo má bežať podľa plánu a nemá vlastnú adresu.

Cron úlohy

Nočné zálohy, fakturačné behy, importy, nahrievanie cache. Klasika: riadok v crontabe, ktorý prestal fungovať pri prestavbe servera a mesiac si to nikto nevšimol.

Queue workery

Worker, ktorý spadol, za sebou potichu necháva rastúcu frontu. Heartbeat z konca každej dávky vám povie, že naozaj konzumuje, nie len že je v zozname procesov.

Zálohy a exporty

Hláste sa až vtedy, keď dump dobehol a upload bol potvrdený. Záloha, ktorá sa ohlási skôr, než uspeje, je horšia ako žiadny monitoring.

Zariadenia a agenti

IoT zariadenia, edge boxy a skripty za NAT-om, ku ktorým sa z internetu nikto nedostane. Zvonku ich nepingnete, ale ozvať sa vedia.

Jeden riadok v úlohe, ktorú už máte

Celá integrácia je jedna požiadavka: váš token v hlavičke, odoslaný na konci behu, keď práca skutočne uspela.

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

Zaradené za príkaz, takže neúspešná záloha nikdy neohlási úspech.

Shell skript

#!/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átky timeout a pár opakovaní zabránia tomu, aby pomalá sieť otvorila falošný incident.

Kód aplikácie

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

Postačí ľubovoľný HTTP klient. Z odpovede nečítame nič okrem toho, že prišla.

Prečo sledovať úlohu takto

Zachytí tichú chybu

Úloha, ktorá sa vôbec nespustí, nevyhodí chybu ani nezapíše log. Jediným signálom je jej absencia — a presne tú je heartbeat postavený všimnúť si.

Dosiahne tam, kde sondy nie

Za firewallom, na notebooku, vo vnútornej sieti, na zariadení bez verejnej adresy. Ak dokáže odoslať požiadavku von, dá sa monitorovať.

Rovnaké incidenty, rovnaké kanály

Zmeškaný heartbeat je incident ako každý iný: tie isté kanály, tá istá história a tie isté status stránky, ktoré vaši zákazníci už čítajú.

Heartbeat monitoring v číslach

Čo kontrola naozaj robí.

Heartbeat monitoring v číslach
Vlastnosť Hodnota
Čo sa kontroluje Či požiadavka z vašej úlohy dorazí v očakávanom okne
Prijímané metódy GET, POST, HEAD
Ako sa monitoring identifikuje Token v hlavičke X-Heartbeat-Token alebo ako Authorization: Bearer
Očakávaná perióda 1 minúta až 7 dní
Tolerancia 30 sekúnd až 24 hodín
Kedy sa otvorí incident Jedno očakávané okno prešlo bez pingu
Notifikačné kanály 14
Dostupné v Platené plány, od 6 EUR mesačne

Otázky k heartbeat monitoringu

Čo vám heartbeat povie a čo nie.

Čo presne je heartbeat monitoring?

Monitoring bez cieľa. Namiesto toho, aby sme volali my vašu službu, volá vaša úloha pri každom behu jednu našu adresu a nesie si vlastný token v hlavičke. Kontrola prejde, keď požiadavka dorazí načas, a spadne, keď nedorazí.

Kedy má úloha ping odoslať?

Až na samom konci, keď práca uspela. Volanie na začiatku by ohlásilo beh, ktorý ešte môže v polovici spadnúť — a to je presne ten výpadok, ktorý chcete zachytiť.

Načo je tolerancia?

Skutočné úlohy sa v čase rozchádzajú. Tolerancia určuje, o koľko môže hlásenie meškať, než ho monitoring vzdá — takže záloha, ktorá občas beží o desať minút dlhšie, nikoho v noci nebudí.

Prečo je token v hlavičke a nie v URL?

Pretože tajomstvo v adrese tajomstvom nezostane: zapíše sa do access logov, do každej proxy po ceste, do histórie shellu aj do zoznamu procesov na stroji, kde úloha beží. V hlavičke sa do nich nedostane a všetky monitoringy volajú tú istú adresu.

Dá sa sledovať úloha za firewallom?

Áno, a práve o to ide. K vášmu stroju sa nemusí dostať nič — úloha potrebuje len odoslať HTTPS požiadavku von.

Čo sa stane, keď sa úloha znovu ohlási?

Incident sa pri najbližšom pingu sám vyrieši a notifikácia o vyriešení odíde rovnakými kanálmi, ktorými prišlo upozornenie.

Je heartbeat monitoring vo free pláne?

Nie. Heartbeat monitoring je súčasťou platených plánov, spolu s kontrolami DNS, SSL a exspirácie domény.

Sledovanie úlohy v 3 krokoch

01.

Vytvorte heartbeat monitoring, pomenujte ho podľa úlohy a určte, ako často sa má hlásiť.

02.

Skopírujte token do úlohy a pošlite ho v hlavičke na konci každého úspešného behu.

03.

Vyberte kanály, kam vám to máme povedať, a nechajte hodiny sledovať nás.

Začať