Jak monitorować uptime sklepu

dowiedz się

Gdy sklep nie działa, nie sprzedaje. Każda minuta przestoju to utracone przychody, koszt wsparcia i spadek zaufania klientów. Skuteczne monitorowanie dostępności to nie tylko włączone testy, ale kompletna instrukcja: co mierzyć, jak mierzyć, kiedy alarmować, kto reaguje i jak zapobiegać powtórkom. Poniżej znajdziesz praktyczny przewodnik, który krok po kroku przeprowadzi Cię od zdefiniowania celów, przez konfigurację narzędzi, po operacyjne reagowanie na incydenty i ciągłe doskonalenie.

Definiowanie celu i zakresu monitoringu

Zidentyfikuj krytyczne ścieżki użytkownika

Na start sporządź mapę ścieżek, które bezpośrednio wpływają na sprzedaż. Najczęściej to: wejście na stronę główną, wyszukiwanie, lista produktów, karta produktu, dodanie do koszyka, przejście do koszyka, logowanie/rejestracja, checkout, wybór dostawy, płatność, potwierdzenie zamówienia, e-mail potwierdzający. Dla każdego kroku określ mechanizmy w tle: wywołania API, integracje z PSP, systemy magazynowe, CRM, silnik promocji, usługi marketingowe czy bramki 3DS.

  • Zapisz zależności między usługami: który serwis odpowiada za koszyk, który za rabaty, który za płatności.
  • Wskaż komponenty zewnętrzne (CDN, DNS, dostawcy płatności, wyszukiwarka, chat, system recenzji), które mogą przerwać przepływ sprzedaży.
  • Oceń wpływ awarii każdego kroku na przychód – to pomoże ustalić priorytety alarmów.

Ustal metryki sukcesu i docelowe poziomy

Twoim punktem odniesienia będzie procent dostępności, czyli uptime, ale nie tylko. Zdefiniuj zestaw metryk biznesowo‑technicznych, które łącznie oddają zdrowie sklepu:

  • Metryki niezawodności: SLI (np. odsetek udanych transakcji), SLO (cel, np. 99,9% skutecznych checkoutów), parametry SLA dla dostawców.
  • Metryki wydajności: czas odpowiedzi kluczowych endpointów, TTFB, LCP, współczynnik Apdex.
  • Metryki jakości: błędy 5xx/4xx, porzucone koszyki, nieudane płatności per metoda, odrzucone autoryzacje 3DS.

Dla każdej metryki określ sposób pomiaru, częstotliwość, akceptowalne progi oraz zasady agregacji w raportach (np. percentyle zamiast średniej).

Wyznacz korytarze dostępności i okna serwisowe

Precyzyjnie zdefiniuj, kiedy sklep ma być w pełni dostępny, a kiedy dopuszczasz prace utrzymaniowe. Zadbaj o ogłoszenie okien serwisowych, by ich wpływ nie liczył się do Twoich celów dostępności. Dodatkowo określ zasady dla tzw. godzin szczytu i wydarzeń specjalnych (Black Friday, kampanie TV), kiedy polityka alarmowania powinna być bardziej rygorystyczna.

  • Ustal minimalny czas między powiadomieniami, by nie zalać zespołu lawiną sygnałów.
  • Ustal definicje awarii częściowej i globalnej oraz warunki wygenerowania incydentu.

Określ zakres techniczny monitoringu

Monitoring musi objąć każdy punkt, który może przerwać ścieżkę zakupową:

  • Warstwa brzegowa: DNS, certyfikaty TLS, CDN, WAF, równoważenie obciążenia.
  • Warstwa aplikacyjna: serwisy backend, cache, bazy danych, kolejki, wyszukiwarka, integracje.
  • Warstwa frontowa: paczki JS/CSS, błędy na konsoli, wydajność ładowania, dostępność zasobów z domen zewnętrznych.
  • Zależności: bramki płatnicze, dostawcy dostawy, systemy e-mail, systemy antyfraudowe.

Wybór i konfiguracja narzędzi

Monitoring syntetyczny krok po kroku

Testy syntetyczne odtwarzają działania użytkownika o stałych porach, z różnych lokalizacji i z wybranymi przeglądarkami. Dzięki nim złapiesz awarie zanim klienci je zgłoszą.

  • Testy HTTP: sprawdzaj kody odpowiedzi, treści kluczowe w body, czasy odpowiedzi, przekierowania, certyfikat TLS i datę jego wygaśnięcia.
  • Testy przeglądarkowe: automatyzuj kliknięcia, wpisywanie danych, weryfikację elementów UI oraz cały checkout z płatnością testową.
  • Testy transakcyjne: wieloetapowe scenariusze end‑to‑end od wejścia aż po potwierdzenie zamówienia. Uwzględnij różne metody płatności i warianty dostawy.

W każdym teście loguj zrzuty ekranu, HAR i konsolę JS. Pamiętaj o separacji środowisk: produkcja monitorowana jest scenariuszami bez konsekwencji finansowych (tokeny testowe, metody zero‑kwotowe, koszyki czyszczone automatycznie).

RUM, metryki serwerowe i logi

Połącz syntetyki z rzeczywistymi danymi o użytkownikach. RUM pokaże, co naprawdę dzieje się w przeglądarkach klientów, z jakich regionów pochodzą spadki wydajności i które urządzenia mają problem.

  • Wstrzyknij lekki skrypt RUM zbierający TTFB, FID, LCP, CLS, error rate oraz dane o zasobach i błędach JS.
  • Zbierz metryki serwerowe: CPU, pamięć, GC, I/O, połączenia DB, saturacja wąskich gardeł (np. pooli).
  • Skoreluj logi aplikacyjne, web serwera i bramek API, wzbogacając je o identyfikatory żądań i transakcji.

Konfiguracja progów i powiadomień

Skuteczne monitorowanie to nie tylko pomiar, lecz właściwie ustawione alerty. Zaplanuj je tak, by były rzadkie, wiarygodne i ważne.

  • Progi bazuj na percentylach (p95/p99), nie na średnich. Ustal osobne limity dla godzin szczytu.
  • Dodaj reguły tłumienia hałasu: opóźnienie uruchomienia, wymagane potwierdzenie z dwóch lokalizacji, mnożnik błędów przez X minut.
  • Przygotuj różne kanały: SMS i telefon dla krytycznych incydentów, komunikatory dla ostrzeżeń, e‑mail dla raportów.

Integracja z zarządzaniem incydentami

Połącz monitoring z narzędziami do on‑call i zarządzania incydentami. W automatycznych zgłoszeniach zawrzyj kontekst: ostatnie wdrożenia, relewantne dashboardy, najczęstsze przyczyny, link do runbooka.

  • Ustal grafiki dyżurów i reguły eskalowania do kolejnych linii wsparcia.
  • Włącz deduplikację zgłoszeń, by jeden problem nie generował kilkunastu powiadomień.
  • Zadbaj o poprawne tagowanie usług i incydentów, co ułatwi raportowanie oraz retrospekcje.

Projektowanie niezawodnej architektury testów

Częstotliwość, lokalizacje i polityka powtórzeń

Aby zmniejszyć liczbę fałszywych alarmów i jednocześnie wykrywać realne problemy, zaprojektuj testy z myślą o odporności na fluktuacje sieci.

  • Ustal częstotliwość: zasoby brzegowe co 1–5 min, checkout co 2–10 min, rzadkie integracje co 10–15 min.
  • Uruchamiaj testy z co najmniej trzech regionów i wymagaj zgodności wyników przynajmniej z dwóch, zanim powstanie incydent.
  • Wprowadź politykę retry: szybka powtórka po 15–30 s, następnie eskalacja, jeśli dwa kolejne pomiary zawodzą.

Zmienne i dane testowe

Zadbaj o rotację danych testowych, by scenariusze nie utknęły na walidacjach lub limitach. Wykorzystuj wirtualne karty, tokeny sandbox, unikalne e‑maile, kupony i dane adresowe. Automatycznie czyść koszyki i zamówienia testowe po sukcesie lub niepowodzeniu, a w przypadku prób płatności zewnętrznych zapisuj korelacje ID z logami aplikacji.

Filtracja szumu i fałszywych alarmów

Większość hałasu pochodzi z krótkotrwałych problemów łączności i incydentów lokalnych. Wprowadź progi minimalnego czasu trwania problemu, algorytmy wygładzania oraz zależności między testami. Jeśli zawodzi DNS, nie zalewaj zespołu dodatkowymi alarmami z aplikacji.

  • Grupuj błędy po przyczynie: DNS, TLS, sieć, timeout, HTTP 5xx, walidacja UI.
  • Wysyłaj tylko pierwszy i ostatni sygnał z serii, z aktualizacjami wątku incydentu zamiast nowych zgłoszeń.
  • Dodatkowo weryfikuj kluczowe błędy testem kontrolnym, np. sprawdzając inną stronę CDN lub inną metodę płatności.

Redundancja monitoringu i niezależność od badanej infrastruktury

Monitoring musi działać, gdy sklep nie działa. Zapewnij niezależne punkty kontrolne, zapasowe kanały powiadomień i alternatywne trasy sieciowe. Zaplanuj redundancja lokalizacji testowych i przechowywanie logów w odseparowanym systemie. Pamiętaj o sprawdzeniach z zewnątrz (out‑of‑band), które nie polegają na wewnętrznych DNS ani na VPN.

Testy płatności i 3DS bez ryzyka kosztów

W produkcji wykonuj testy płatności z metodami dozwolonymi przez dostawcę bez faktycznego rozliczania. Po stronie PSP skonfiguruj bezpieczne tokeny i whitelisty IP dla syntetyk. Testuj 3DS 1/2 różnymi scenariuszami, w tym odrzuconymi autoryzacjami, by wychwycić błędy ścieżek alternatywnych.

Monitorowanie zależności zewnętrznych

Dla każdego dostawcy zewnętrznego stwórz osobne testy i metryki: czas odpowiedzi, poziom błędów, procent odrzuconych autoryzacji, status webhooków. Gdy zależność zawodzi, automatycznie wyświetlaj wewnętrzne komunikaty o ograniczeniach (np. tymczasowo wyłącz płatność X) i kieruj ruch na alternatywy.

Operacje: reagowanie, raportowanie i ciągłe doskonalenie

Runbooki i gotowe procedury

Każdy alarm musi prowadzić do konkretnego działania. Przygotuj runbooki z krokami diagnostycznymi i remediacjami. Włącz dynamiczne podejmowanie decyzji na podstawie danych z dashboardu: czy problem dotyczy jednego regionu, jednej metody płatności czy wszystkich klientów.

  • Runbook powinien zawierać: identyfikację komponentu, szybkie testy potwierdzające, znane obejścia, punkty kontaktu do dostawców, kryteria przywrócenia.
  • Dodaj check‑listy poincydentowe: stabilizacja, walidacja ścieżek krytycznych, odwrócenie feature flag, weryfikacja bazy zamówień i płatności.
  • Automatyzuj proste akcje: restart usług zależnie od sygnału, wyłączenie cache, przełączenie regionu, komunikaty na stronie statusowej.

Eskalacja i komunikacja

Ustal jasną ścieżkę, gdy pierwszy dyżur nie rozwiąże problemu. Dobrze zaprojektowana eskalacja obejmuje kolejne poziomy specjalistów, decydentów biznesowych i dostawców. Komunikacja do klientów powinna być szybka, szczera i aktualizowana aż do rozwiązania. Korzystaj z publicznej strony statusowej, banerów w sklepie i komunikatów w checkout, by zmniejszyć frustrację.

Raportowanie dostępności i zgodności

Buduj cykliczne raporty tygodniowe i miesięczne. Pokaż odchylenie od celów SLO, całkowity i per‑komponentowy uptime, wpływ na przychody oraz główne przyczyny awarii. Oddziel awarie wewnętrzne od problemów u dostawców i porównaj je do warunków SLA. Dzięki temu wiesz, gdzie inwestować i jak renegocjować umowy.

  • Stosuj standardowe formaty: podsumowanie executive, wskaźniki, oś czasu incydentów, rekomendacje działań.
  • Włącz automatyczne generowanie wykresów i weryfikację integralności danych (spójność z logami, brak luk w próbkowaniu).
  • Zachowaj metadane wdrożeń, by wiązać skoki błędów z konkretnymi zmianami.

Retrospekcje bez obwiniania

Po każdym istotnym incydencie przeprowadź konstruktywne postmortem. Skup się na systemie i procesach, nie na winie osób. Zidentyfikuj czynniki pierwotne, bariery detekcji i luki w runbookach. Ustal konkretne zadania naprawcze z właścicielami, priorytetem i datą.

  • Przeanalizuj, które sygnały były dostępne, ale zignorowane, i co utrudniło szybką diagnozę.
  • Sprawdź, czy polityki alarmów były zbyt wrażliwe lub zbyt pobłażliwe.
  • Zdecyduj o dodatkowych testach syntetycznych lub rozszerzeniu RUM o nowe zdarzenia biznesowe.

Automatyzacje i prewencja

Im wcześniej wykryjesz problem, tym mniejszy jego koszt. Włącz bramki jakości w CI/CD, które uruchamiają kluczowe scenariusze syntetyczne po wdrożeniu w staging i produkcji. Automatyzuj sanity‑checki po deployu: ping zdrowia usług, test koszyka, szybki zakup, wysyłkę e‑maila i webhooków. Gdy test nie przejdzie, cofaj wdrożenie albo przełączaj ruch na poprzednią wersję.

  • Korzystaj z canary i progressive delivery, by ograniczyć zasięg błędów.
  • Wdrażaj mechanizmy circuit breaker i time‑boxowanie zapytań do zewnętrznych dostawców, aby awaria zależności nie kaskadowała.
  • Monitoruj ważność certyfikatów i domen, progi rate‑limitów oraz nadchodzące zmiany w API partnerów.

Zarządzanie kosztami i priorytetyzacja

Monitoring też kosztuje. Zrób przegląd metryk pod kątem zwrotu z informacji. Najgłośniejsze i najcenniejsze testy powinny dotyczyć ścieżek o największym wpływie na sprzedaż. Rotuj szczegółowe logowanie w okresach spokoju, a w godzinach szczytu zwiększaj próbkę i rozdzielczość pomiarów. Zapisuj historyczne dane wystarczająco długo, by wykrywać sezonowe wzorce i regresje.

Instrukcja wdrożenia w 30 dni

Dni 1–7: inwentaryzacja i fundamenty

  • Spisz wszystkie usługi i zależności. Narysuj mapę przepływu checkoutu.
  • Zdefiniuj SLI i docelowe SLO dla checkoutu, płatności i koszyka. Ustal metryki wydajności oraz progi alarmów.
  • Wybierz narzędzia: syntetyki, APM, logi, RUM, system on‑call.
  • Zacznij od testów HTTP dla strony głównej, listy produktów i API koszyka.

Dni 8–15: scenariusze krytyczne i alertowanie

  • Zbuduj test transakcyjny E2E: wejście, wyszukiwanie, produkt, koszyk, checkout, płatność testowa, potwierdzenie.
  • Skonfiguruj alerty wielokanałowe z deduplikacją i regułami retry. Ustal dyżury i eskalacje.
  • Dołóż testy warstwy brzegowej: DNS, certyfikaty, CDN. Włącz monitorowanie webhooków.

Dni 16–23: odporność i runbooki

  • Dodaj lokalizacje testowe, progi percentylowe i filtrowanie fałszywych alarmów.
  • Przygotuj runbooki dla najczęstszych awarii: PSP, DB, cache, wyszukiwarka, błędy 5xx.
  • Włącz proaktywne testy po deployu i canary na kluczowe usługi.

Dni 24–30: raporty i doskonalenie

  • Uruchom dashboardy dostępności i tygodniowe raporty zgodne z SLA.
  • Przeprowadź próbny incydent i ćwiczenia zespołu. Oceń czas wykrycia, reakcję i komunikację.
  • Zaplanuj pierwsze przeglądy retrospektywne oraz backlog usprawnień.

Po tych 30 dniach masz podstawy systemu, który wykrywa problemy, prowadzi do działania i uczy się na błędach. Od tego momentu zwiększaj pokrycie scenariuszy, precyzuj progi i integruj monitoring głębiej z procesem wytwórczym, by chronić sprzedaż nawet pod największym ruchem.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz