Built in Europe. Monitoring worldwide.

Heartbeat monitoring

Noční záloha, která tiše přestala běžet, je výpadek, který nikdo nevidí. Nechte každou úlohu, ať se hlásí sama, a dozvíte se o běhu, který nenastal.

Kontrola, která běží ve vaší infrastruktuře

Každá jiná naše kontrola se ptá zvenčí: je port otevřený, odpovídá stránka, existuje ještě záznam. Cron úloha neodpoví ani na jednu z nich — běží na stroji, ke kterému se nikdo nedostane, nevytváří žádný endpoint, a když tiše přestane, jediným příznakem je záloha, kterou nikdo neudělal, nebo faktura, kterou nikdo neposlal. Heartbeat to obrací. Pulsitor dá úloze privátní token, úloha ho na konci každého úspěšného běhu pošle v hlavičce na jednu pevnou adresu a my hlídáme hodiny. Když okno projde bez pingu, incident se otevře sám a putuje stejnými kanály jako u každé jiné kontroly.

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

Zařazeno za příkaz, takže neúspěšná záloha nikdy neohlásí úspěch.

Jak funguje heartbeat kontrola

Čím je Pulsitor silný hned po nasazení.

01

Úloha se hlásí sama

Přidejte jeden řádek na konec cron záznamu, workeru nebo deploy skriptu. Stačí GET, POST nebo HEAD požadavek s tokenem monitoringu v hlavičce — žádný agent, žádná knihovna, nic k instalaci.

02

Periodu i rezervu určujete vy

Řekněte, jak často se má úloha hlásit — od minuty po týden — a o kolik může mít zpoždění, než to počítáme jako zmeškané. Záloha, která běžně trvá dvacet minut, dostane dvacet minut tolerance.

03

Incident otevře ticho

Když okno projde bez pingu, incident začíná v okamžiku, kdy mělo hlášení přijít, ne když jsme si to všimli. A sám se uzavře, jakmile se úloha znovu ohlásí.

Co se tím dá sledovat

Vše, co má běžet podle plánu a nemá vlastní adresu.

Cron úlohy

Noční záloha, fakturační běhy, importy, nahřívání cache. Klasika: řádek v crontabu, který přestal fungovat při přestavbě serveru a měsíc si toho nikdo nevšiml.

Queue workery

Worker, který spadl, za sebou tiše nechává rostoucí frontu. Heartbeat z konce každé dávky vám řekne, že skutečně konzumuje, ne jen že je v seznamu procesů.

Zálohy a exporty

Hlaste se teprve tehdy, když dump doběhl a upload byl potvrzen. Záloha, která se ohlásí dřív, než uspěje, je horší než žádný monitoring.

Zařízení a agenti

IoT zařízení, edge boxy a skripty za NATem, ke kterým se z internetu nikdo nedostane. Zvenčí je nepingnete, ale ozvat se umí.

Jeden řádek v úloze, kterou už máte

Celá integrace je jeden požadavek: váš token v hlavičce, odeslaný na konci běhu, když práce skutečně uspěla.

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

Zařazeno za příkaz, takže neúspěšná záloha nikdy neohlásí úspěch.

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átký timeout a pár opakování zabrání tomu, aby pomalá síť otevřela falešný incident.

Kód aplikace

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

Postačí libovolný HTTP klient. Z odpovědi nečteme nic kromě toho, že přišla.

Proč sledovat úlohu takto

Zachytí tichou chybu

Úloha, která se vůbec nespustí, nevyhodí chybu ani nezapíše log. Jediným signálem je její absence — a přesně tu je heartbeat postavený si všimnout.

Dosáhne tam, kam sondy ne

Za firewallem, na notebooku, ve vnitřní síti, na zařízení bez veřejné adresy. Pokud dokáže odeslat požadavek ven, dá se monitorovat.

Stejné incidenty, stejné kanály

Zmeškaný heartbeat je incident jako každý jiný: tytéž kanály, tatáž historie a tytéž status stránky, které vaši zákazníci už čtou.

Heartbeat monitoring v číslech

Co kontrola skutečně dělá.

Heartbeat monitoring v číslech
Vlastnost Hodnota
Co se kontroluje Zda požadavek z vaší úlohy dorazí v očekávaném okně
Přijímané metody GET, POST, HEAD
Jak se monitoring identifikuje Token v hlavičce X-Heartbeat-Token nebo jako Authorization: Bearer
Očekávaná perioda 1 minuta až 7 dní
Tolerance 30 sekund až 24 hodin
Kdy se otevře incident Jedno očekávané okno prošlo bez pingu
Notifikační kanály 14
Dostupné v Placené plány, od 6 EUR měsíčně

Otázky k heartbeat monitoringu

Co vám heartbeat řekne a co ne.

Co přesně je heartbeat monitoring?

Monitoring bez cíle. Místo aby volali my vaši službu, volá vaše úloha při každém běhu jednu naši adresu a nese si vlastní token v hlavičce. Kontrola projde, když požadavek dorazí včas, a spadne, když nedorazí.

Kdy má úloha ping odeslat?

Až na samém konci, když práce uspěla. Volání na začátku by ohlásilo běh, který ještě může v polovině spadnout — a to je přesně ten výpadek, který chcete zachytit.

K čemu je tolerance?

Skutečné úlohy se v čase rozcházejí. Tolerance určuje, o kolik může hlášení mít zpoždění, než ho monitoring vzdá — takže záloha, která občas běží o deset minut dýl, nikoho v noci nebudí.

Proč je token v hlavičce a ne v URL?

Protože tajemství v adrese tajemstvím nezůstane: zapíše se do access logů, do každé proxy po cestě, do historie shellu i do seznamu procesů na stroji, kde úloha běží. V hlavičce se do nich nedostane a všechny monitoringy volají tutéž adresu.

Dá se sledovat úloha za firewallem?

Ano, a právě o to jde. K vašemu stroji se nemusí dostat nic — úloha potřebuje jen odeslat HTTPS požadavek ven.

Co se stane, když se úloha znovu ohlásí?

Incident se při nejbližším pingu sám vyřeší a notifikace o vyřešení odejde stejnými kanály, kterými přišlo upozornění.

Je heartbeat monitoring ve free plánu?

Ne. Heartbeat monitoring je součástí placených plánů, spolu s kontrolami DNS, SSL a expirace domény.

Sledování úlohy ve 3 krocích

01.

Vytvořte heartbeat monitoring, pojmenujte ho podle úlohy a určete, jak často se má hlásit.

02.

Zkopírujte token do úlohy a pošlete ho v hlavičce na konci každého úspěšného běhu.

03.

Vyberte kanály, kam vám to máme říct, a hodiny nechte hlídat nás.

Začít