Multi-region weryfikacja awarii
Gdy monitoring działa tylko z jednego miejsca, krótka usterka routingu u naszego dostawcy internetu może obudzić Cię o trzeciej nad ranem fałszywym alarmem. Weryfikacja z wielu regionów (multi-region) rozwiązuje ten problem: awaria zostaje potwierdzona tylko wtedy, gdy zgłasza ją serwer główny oraz co najmniej jeden serwer zapasowy w innym regionie lub u innego dostawcy internetu.
Jak to działa
- Główna kontrola (z naszego centralnego serwera) zgłasza DOWN (niedostępny).
- Przed wysłaniem powiadomienia system wywołuje zapasowy worker w innym regionie.
- Worker wykonuje własny test i zwykle w ciągu kilku sekund zwraca UP lub DOWN (zależnie od limitu czasu monitora).
- Jeśli zapasowy również potwierdzi DOWN, monitor zostaje oznaczony jako niedostępny i wysyłane są powiadomienia.
- Jeśli serwer główny zgłosił DOWN, ale zapasowy UP, był to fałszywy alarm (po angielsku flake) - żadne powiadomienie nie jest wysyłane.
Kiedy uruchamia się konsensus
Weryfikacja z wielu regionów nie jest wywoływana przy każdej kontroli - tylko w ściśle określonych przypadkach, aby nie spowalniać zwykłego pomiaru:
- Serwer główny (primary) najpierw wykonuje własną kontrolę, w tym wewnętrzne ponowienia (2 próby z krótką pauzą).
- Konsensus uruchamia się tylko wtedy, gdy serwer główny również po ponowieniu zgłasza DOWN. Jeśli wszystko jest w porządku, regiony zapasowe nie są w ogóle wywoływane.
- Dotyczy tylko monitorów typu http (bez wieloetapowych przepływów), tcp i ping. Pozostałe typy (ssl, dns, domena, wizualny, heartbeat) go nie używają.
Jak podejmowana jest decyzja o awarii
Po tym, jak serwer główny zgłosi DOWN, system prosi o niezależną kontrolę dostępne zapasowe workery w innych regionach. Na podstawie wyników liczy, ile miejsc potwierdziło awarię:
- Monitor zostaje oznaczony jako niedostępny dopiero wtedy, gdy liczba zgłoszeń DOWN osiągnie ustawiony próg (domyślnie 2 regiony łącznie z głównym).
- Jeśli próg nie zostanie osiągnięty (na przykład serwer główny zgłosił DOWN, ale zapasowy UP), jest to fałszywy alarm - monitor pozostaje w stanie UP i nie jest wysyłane żadne powiadomienie. Jako czas odpowiedzi używana jest średnia z regionów, które odpowiedziały poprawnie.
- Zapasowy worker, który właśnie nie odpowiada, jest po cichu pomijany i nie jest liczony w głosowaniu.
Kto i jak to włącza
Weryfikacja z wielu regionów to opcjonalna funkcja na poziomie całej platformy, którą zarządza administrator ePulz.io. Regiony nie są ustalone na stałe - administrator dodaje zapasowe workery według potrzeb (na przykład serwer główny plus jeden lub dwa węzły chmurowe w innych krajach) i ustawia, ile z nich musi potwierdzić awarię.
Jak wygląda to w interfejsie
W szczegółach monitora przy awarii, która przeszła przez konsensus, widzisz wynik weryfikacji z poszczególnych miejsc, na przykład:
consensus: primary:down, eu1:down
result: DOWN (2 of 2 confirmed)
Na publicznej stronie statusu odwiedzający nie widzą żadnych szczegółów technicznych - otrzymują tylko zweryfikowany, wiarygodny status usługi bez fałszywych alarmów.
Praktyczne konsekwencje
- Mniej fałszywych powiadomień - krótka usterka na trasie do jednego dostawcy jest odfiltrowana przez weryfikację z innego regionu.
- Nieco dłuższy czas wykrycia - przy potwierdzaniu awarii dochodzi kilka dodatkowych sekund w porównaniu z pomiarem tylko z jednego miejsca.
- Bardziej wiarygodna historia - do incydentów i statystyk dostępności zapisywane są tylko rzeczywiste awarie, a nie lokalne wahania sieci.