Przejdź do treści

System działa. Klient rezygnuje. Observability pokazuje, dlaczego

System może być online i jednocześnie tracić zamówienia. Zobacz, które sygnały ujawniają problem, zanim zauważy go klient.

Po przeczytaniu będziesz wiedzieć

  • Zobaczysz, dlaczego status 200 i zielony wykres CPU nie potwierdzają, że proces klienta działa.
  • Poznasz minimalny zestaw metryk i pobierzesz checklistę dla biznesu i IT.
  • Dowiesz się, jak AI grupuje sygnały, wykrywa anomalie i skraca szukanie przyczyny po wdrożeniu.
Progrmista obserwuje zielone wykresy infrastruktury, podczas gdy drugi ekran pokazuje anomalię
System może wyglądać zdrowo, gdy właściwy sygnał pozostaje poza polem uwagi.

Status 200. CPU w normie. Brak alarmu. Tymczasem klient czeka 20 sekund na przejście do koszyka. Nie zgłasza problemu. Po prostu zamyka kartę.

To kosztowny rodzaj problemu: system formalnie działa, ale po cichu obniża konwersję, wydłuża pracę albo zwiększa koszt infrastruktury. W raporcie widać skutek. W panelu technicznym przyczyna może nadal pozostawać niewidoczna.

Observability (obserwowalność systemu) to zdolność oceny jego rzeczywistego stanu na podstawie metryk, logów i trace’ów. Łączy to, co próbował zrobić użytkownik, z zachowaniem technologii i wynikiem biznesowym. Celem nie jest zbieranie wykresów. Celem jest odpowiedź na pytanie: czy technologia rzeczywiście dowozi proces biznesowy?

Co to jest observability i co daje biznesowi

Metryki pozwalają biznesowi podejmować decyzje oparte o dane. Metryki biznesowe mogą przykładowo pokazywać przychód, konwersję, liczbę zapytań lub wykonanych ofert. Jeśli technologia jest filarem sprzedaży albo operacji, jej kondycję trzeba mierzyć równie uważnie. Dostępność, czas odpowiedzi, błędy i zapas zasobów pokazują, czy mechanizm dostarczający wynik nadal jest stabilny.

Monitoring odpowiada na wcześniej zdefiniowane pytania, na przykład czy serwer działa i czy CPU przekroczyło próg. Observability pomaga wyjaśnić problem, którego nie przewidzieliśmy, łącząc wynik biznesowy z zachowaniem systemu.

Decyzje o skalowaniu, optymalizacji i kolejnych inwestycjach powinny wynikać z tych danych, a nie z przypuszczeń lub pojedynczego testu wykonanego w dobrych warunkach.

Niskie użycie CPU nie potwierdza, że klient otrzymał wynik, a spadek konwersji sam nie wskazuje, czy zawiniła oferta, kampania czy aplikacja.

Observability powinno łączyć trzy perspektywy:

  1. Wynik biznesowy: czy klient zakończył zakup, wysłał formularz albo otrzymał zakupiony dostęp?
  2. Doświadczenie użytkownika: ile czekał i na którym kroku zrezygnował?
  3. Stan technologii: która usługa, baza, kolejka lub integracja odpowiadała za problem?

To ważne także wtedy, gdy system nadal działa. Ponowienia operacji, cache lub mechanizmy zapasowe mogą maskować błędy. Użytkownik jeszcze widzi wynik, ale w tle rośnie liczba wyjątków, czas odpowiedzi, kolejka zadań albo zużycie zasobów. Bez pomiaru problem zauważymy dopiero wtedy, gdy skończy się zapas.

Co monitorować na stronie, w sklepie i aplikacji

W dzisiejszych czasach nawet prosta strona zależy od hostingu, DNS, certyfikatu TLS, bibliotek, systemu CMS, formularzy i zewnętrznych skryptów. Aktualizacja jednej paczki lub awaria dostawcy może zepsuć funkcję, mimo że serwer odpowiada.

Rozsądne minimum obejmuje cztery testy:

  1. Dostępność: czy strona odpowiada z zewnątrz i ma poprawny certyfikat?
  2. Renderowanie: czy przeglądarka wyświetliła kluczową treść, a nie pusty ekran po błędzie JavaScript?
  3. Wydajność: jaki jest czas dla typowego użytkownika oraz dla najwolniejszych wizyt?
  4. Krytyczna ścieżka: czy można dodać produkt do koszyka, wysłać formularz, zalogować się?

Nie warto patrzeć wyłącznie na średnią. Mierz p50, p95, a przy większym ruchu także p99. Dla stron pomocnym punktem odniesienia są Core Web Vitals: LCP do 2,5 sekundy, INP do 200 ms i CLS do 0,1 na 75. percentylu wizyt.

Cztery realne przypadki, które teoretycznie działały

Poniższe sytuacje są przykładami które wydarzyły się naprawdę, systemy odpowiadały poprawnie, wydawało się że wszystko działa.

1. Koszyk potrzebował ponad 20 sekund

Sklep był dostępny, a właściciel podczas ręcznych testów trafiał na dobre czasy odpowiedzi. Monitoring pokazał jednak, że dla dużej części użytkowników przejście do koszyka trwało ponad 20 sekund.

Klienci nie zgłaszali problemu. Po prostu rezygnowali z zakupu. Dopiero p95, trace (ślad przebiegu operacji) i powiązane logi pokazały skalę oraz wolny etap żądania.

Wniosek: nie wystarczy monitorować, czy usługa jest online. Trzeba sprawdzać, czy ścieżki krytyczne są reliazowane w akceptowalnych czasach.

2. Nie tylko programiści potrzebują snu

Podczas zwykłych testów serwis działał porpawnie. Historia dostępności ujawniła jednak, że co kilka dni w godzinach nocnych serwis przestawał odpowiadać. Przyczyną był współdzielony hosting, który okresowo nie radził sobie z obciążeniem i dostępnymi zasobami.

Bez pomiaru 24 godziny na dobę problem wyglądał jak pojedynczy przypadek lub chwilowy kłopot z internetem. W rzeczywistości serwis regularnie tracił dostępność.

Wniosek: test wykonany w południe nie opisuje całej doby. Historia dostępności pomaga odróżnić incydent od powtarzalnego ograniczenia infrastruktury.

3. Testy na części dancyh, ale nie na pełnej skali

Dla aplikacji wykonującej skomplikowane obliczenia na dużych zbiorach danych przygotowano aktualizację, którą następnie przetestowano na próbce dadaych jaką uzano za porawną. Testy przeszły pozytywnie, założono że przy pełnym zbiorze danych, aplikacja będzie potrzebować więcej czasu na wykonaie operacji, co było akceptowalne. Niestety nikt nie zwrócił uwagi na jedną z rzeczy krytyczych - podczas obliczania aplikacja potrzebowała ponad 90% dostępnych zasobów. Przez brak odpowiednich metryk i observability nitk nie zauważył wycieku pamięci.

Wniosek: podczas testowania zwracaj uwagę na to jak zachowuje się serwer oraz usługi powiązane.

4. Kampania wygenerowała ruch, na który system nie był gotowy

Zespół reklamy nie poinformował o wydarzeniu, które wygenerowało gwałtowny wzrost ruchu. Szczyt ruchu przeciążył stronę i kolejne elementy infrastruktury.

Komunikacja pozwoliłaby wcześniej przygotować cache, skalowanie i test obciążeniowy. Monitoring powinien jednak stanowić drugą linię obrony. Rosnąca liczba żądań, opóźnienia, zajęta pula połączeń i długość kolejek mogą ostrzec zespół przed pełną awarią.

Wniosek: observability nie zastępuje komunikacji, ale ogranicza koszt jej braku.

Jakie metryki monitorować

ObszarCo mierzyćPytanie biznesowe
Krytyczny processkuteczność i czas zakupu, formularza, logowania lub kalkulacjiCzy klient może osiągnąć cel?
Dostępnośćodpowiedź HTTP, renderowanie, test syntetycznyCzy produkt jest dostępny przez całą dobę?
Wydajnośćp50, p95, p99 dla strony, API i zadańJak długo czekają użytkownicy?
Błędywyjątki, timeouty, nieudane płatnościJak często proces się nie kończy?
ZasobyCPU, pamięć, dysk, połączenia DB, kolejkiJak blisko system jest limitu?
Zależnościczas i błędy API płatności, poczty i dostawcówCzy problem jest poza naszym kodem?
Wdrożeniawersja, czas publikacji, zmiana błędów i opóźnieńCzy nowa wersja pogorszyła działanie?
Koszt technologiikoszt dzienny i miesięczny, prognoza, koszt pojedynczej operacjiCzy wydatki rosną razem z wartością dla biznesu?

Metryka ma prowadzić do decyzji. Jeżeli wykres rośnie, ale nikt nie wie, co oznacza i kto ma zareagować, jest dekoracją.

Monitorowanie kosztów chmury

Koszt infrastruktury również jest metryką techniczną. W modelu pay-as-you-go błędne skalowanie, nadmiar logów, zapętlone zadanie lub zapomniane środowisko mogą szybko zwiększyć fakturę bez dostarczenia dodatkowej wartości. Warto monitorować bieżące wydatki, prognozę na koniec miesiąca, odchylenie od budżetu i koszt jednostkowy, na przykład jednego zamówienia, raportu lub aktywnego klienta. Alarm powinien pojawić się przy nietypowym wzroście, a nie dopiero po otrzymaniu rachunku. Bardzo często firma opłaca faktury za infrastrukturę bez głębszej analizy, weryfikacji czy nadal potrzebujemy wszystkich usług, czy któraśz usług nie wymaga przekonfigurowania.

Logi pokazują problemy, które system jeszcze ukrywa

System może wykonywać podstawowe zadania i jednocześnie generować setki błędów. Automatyczne ponowienia ukrywają awarię integracji. Kolejka rośnie, ale użytkownik jeszcze otrzymuje wynik. Pula połączeń jest prawie pełna, lecz pojedynczy test nadal przechodzi.

To sygnały ostrzegawcze. Pozwalają zareagować przed pełną awarią, utratą danych lub spadkiem sprzedaży.

Użyteczny log powinien zawierać czas, usługę, środowisko, wersję aplikacji, wynik operacji oraz trace_id lub request_id. Nie powinien zawierać haseł, tokenów ani niepotrzebnych danych klientów. Logi trzeba centralizować, ponieważ zapis na niedziałającym serwerze może zniknąć razem z nim.

Cloudflare, Sentry, SigNoz i Grafana: różne warstwy obserwacji

  • Cloudflare nawet w bezpłatnym planie daje podstawowy obraz ruchu: liczbę żądań, transfer, unikalnych odwiedzających, kraje źródłowe i dane pomagające ocenić wykorzystanie cache. Security Analytics pozwala analizować podejrzany ruch, a automatyczna ochrona DDoS jest dostępna we wszystkich planach.
  • Sentry porządkuje błędy, pokazuje stack trace, wersję, środowisko i liczbę dotkniętych użytkowników.
  • SigNoz łączy metryki, logi, trace’y i alerty w platformie opartej na OpenTelemetry.
  • Grafana tworzy wspólny widok danych z wielu źródeł i obsługuje reguły alarmowe.

Cloudflare pokazuje, co dzieje się na brzegu sieci: jaka jest skala ruchu, ile żądań obsłużył cache i czy pojawiają się wzorce przypominające atak. Nie pokaże jednak, czy po odpowiedzi 200 zamówienie zostało poprawnie zapisane albo dlaczego kalkulator zwrócił błędny wynik. Dlatego uzupełnia, ale nie zastępuje monitoringu krytycznego procesu, logów aplikacji i trace’ów.

Wykres pokazujący 1,93 miliona żądań oraz wyraźne skoki ruchu
Zanonimizowany wykres skali ruchu. Pojedynczy skok do blisko 500 tys. żądań nie byłby widoczny podczas zwykłego testu strony.
Wykres żądań obsłużonych przez cache z regularnymi skokami ruchu
Ruch obsłużony przez cache pokazuje powtarzalne piki i pomaga ocenić, czy cache rzeczywiście zdejmuje część obciążenia z serwera źródłowego.

Narzędzie jest wtórne wobec pytania, na które ma odpowiedzieć. Mała strona potrzebuje kontroli dostępności, renderowania, formularza i wydajności. Sklep powinien monitorować całą ścieżkę zakupu. System biznesowy wymaga dodatkowo kontroli API, integracji, zadań w tle, kolejek i bazy danych.

Jeśli firma nie ma własnego zespołu operacyjnego, monitoring powinien być częścią utrzymania i rozwoju systemu, razem z jasno przypisaną odpowiedzialnością za alerty i reakcję na incydenty.

AI w monitoringu: mniej szukania, szybsza reakcja

Przy większym systemie problemem często nie jest brak danych, ale ich nadmiar. Jedna awaria może wygenerować tysiące logów i kilka alarmów z różnych usług. Programista traci czas na ustalenie, które sygnały dotyczą tego samego incydentu.

AI może skrócić ten etap w czterech obszarach:

  1. Grupowanie: łączy podobne wyjątki, logi i trace’y w jeden incydent, zamiast wysyłać tysiące powiadomień.
  2. Priorytetyzacja: ocenia wpływ na krytyczny proces, liczbę użytkowników, transakcje i brak ścieżki zapasowej.
  3. Kontekst dla programisty: wskazuje aktywną wersję, powiązane logi, wolny fragment trace’a, zmianę po wdrożeniu i prawdopodobny punkt startowy analizy.
  4. Detekcja anomalii: porównuje aktualne zachowanie z historycznym wzorcem i wykrywa odchylenia bez ręcznego ustalania jednego progu.

Przykład użytecznej informacji dla programisty: „Po wdrożeniu 2.4.1 czas p95 koszyka wzrósł z 800 ms do 6,4 s. Większość czasu zajmuje nowe wywołanie API magazynu. Problem dotyczy 21% sesji mobilnych”. Programista dostaje hipotezę opartą na danych, a nie kolejny panel do przeszukania.

Nowoczesne narzędzia observability potrafią łączyć kontekst błędu, trace’y, logi, profile i kod. Mogą też wykrywać odchylenia od historycznego wzorca, zanim problem przekroczy sztywny próg alarmowy.

Żeby połączyć incydent z CI/CD, pipeline powinien przekazywać numer wersji, commit, czas wdrożenia i środowisko. Wtedy system może porównać błędy, opóźnienia i skuteczność procesu przed publikacją oraz po niej. Przy dojrzałym procesie sygnał może zatrzymać dalszą publikację lub przygotować rekomendację wycofania wersji.

AI nie zastępuje dobrych danych ani decyzji człowieka. Bez uporządkowanych logów, identyfikatorów trace, wersji wdrożenia i zdefiniowanej ścieżki biznesowej wygeneruje tylko przypuszczenie. Dostęp do kodu i logów musi też uwzględniać maskowanie danych oraz uprawnienia.

Alarm ma prowadzić do działania

Sam dashboard nie uruchomi reakcji. Najważniejsze sygnały potrzebują alarmów z konkretnym warunkiem, poziomem pilności, właścicielem i pierwszym krokiem diagnostycznym.

Alarm na pojedynczy błąd zwykle tworzy hałas. Alarm na rosnący odsetek nieudanych płatności pokazuje wpływ. Dobra wiadomość odpowiada na trzy pytania: co się dzieje, kogo dotyczy i gdzie zacząć sprawdzanie.

Metryki pokazują efekt wdrożenia

Każde wdrożenie powinno być widoczne na wykresach razem z numerem wersji i czasem publikacji. Samo zakończenie wdrożenia nie oznacza, że system działa lepiej. Trzeba porównać stan przed zmianą i po niej: czas p95, odsetek błędów, skuteczność krytycznego procesu, zużycie zasobów oraz koszt infrastruktury.

Jeżeli nowa wersja skraca czas odpowiedzi i zmniejsza liczbę błędów bez pogorszenia skuteczności procesu, mamy dowód poprawy. Jeśli po publikacji rośnie p95, liczba błędów 4xx/5xx albo użycie zasobów, metryki pokazują regresję. Zespół może wtedy poprawić lub wycofać wersję, zanim problem zgłoszą użytkownicy.

Na poniższym wykresie pokazujemy bezwzględną liczbę pojedynczych błędów. W codziennym monitoringu warto obok niej śledzić udział błędów we wszystkich żądaniach. Pięć błędów przy pięciu żądaniach oznacza 100% niepowodzeń. Pięć błędów przy 10 000 żądań to 0,05%. Liczba pokazuje wolumen, a procent rzeczywistą skalę wpływu. Najczytelniej obserwować oba wskaźniki.

Wykres błędów 4xx i 5xx pokazujący wyraźny wzrost liczby błędów endpointu
Zanonimizowany wykres błędów endpointu. Po skorelowaniu takiego wzrostu z czasem wdrożenia można szybko sprawdzić, czy nowa wersja wprowadziła regresję.

Checklista observability dla biznesu i IT

Zanim wybierzesz narzędzie, uzgodnij z zespołem, jaki wynik ma osiągnąć klient i po czym poznacie, że technologia przestała go wspierać. Dobry monitoring zaczyna się od procesu, nie od wykresu.

Biznes: ustal cel i odpowiedzialność

  • Krytyczny proces: wybierz zakup, formularz, kalkulację, logowanie albo integrację, której przerwanie kosztuje sprzedaż, czas lub zaufanie.
  • Definicja sukcesu: nazwij wynik kończący proces, na przykład opłacone zamówienie lub poprawnie wysłane dane.
  • Akceptowalny czas: określ, ile klient może czekać i kiedy spowolnienie zaczyna obniżać konwersję lub produktywność.
  • Wpływ i priorytet: oszacuj koszt godziny problemu oraz wskaż zdarzenia wymagające natychmiastowej reakcji.
  • Właściciel reakcji: przypisz osobę lub rolę odpowiedzialną za decyzję, komunikację i eskalację.
  • Koszt technologii: monitoruj budżet chmury, prognozę rachunku i koszt pojedynczej operacji, klienta lub transakcji.

Technologia: zbierz sygnały potrzebne do decyzji

  • Dostępność procesu: test z zewnątrz powinien wykonywać krytyczną ścieżkę, a nie tylko sprawdzać status HTTP.
  • Czasy p50, p95 i p99: pokazują doświadczenie typowego użytkownika i najwolniejsze przypadki, które ukrywa średnia.
  • Udział błędów: obserwuj jednocześnie liczbę błędów i ich procent we wszystkich żądaniach.
  • Zasoby i zależności: połącz CPU, pamięć, bazę, kolejki oraz zewnętrzne API z konkretnym procesem biznesowym.
  • Logi i trace: centralizuj dane, dodaj request_id lub trace_id, wersję aplikacji i wyklucz sekrety.
  • Wdrożenia: oznaczaj na wykresach czas publikacji, wersję i commit, aby porównać stan przed zmianą i po niej.
  • Alerty i runbook: każdy ważny alarm powinien mieć próg, właściciela, kanał eskalacji i pierwszy krok diagnostyczny.
  • Koszty i anomalie: alarmuj o nietypowym wzroście rachunku, ruchu, logów albo kosztu pojedynczej operacji.

Technologia ma dowozić wynik, nie tylko działać

Zielony serwer nie jest celem. Celem jest klient, który może kupić, wysłać dane lub wykonać swoją pracę. Observability pokazuje moment, w którym technologia przestaje ten cel wspierać. Daje czas na reakcję, zanim ukryty problem stanie się reklamacją, utraconym zamówieniem lub pełną awarią.

Najczęstsze pytania

Czym observability różni się od zwykłego monitoringu?
Monitoring odpowiada głównie na znane pytania: czy serwer działa, czy CPU przekroczyło próg, ile było błędów. Observability pomaga także wyjaśnić nieprzewidziany problem, łącząc metryki, logi, ślady żądań i kontekst wdrożenia. W praktyce oba podejścia powinny się uzupełniać.
Czy działający system może mieć poważne problemy?
Tak. Ponowienia operacji, cache lub mechanizmy zapasowe mogą ukrywać błędy przed użytkownikiem. W tym czasie rośnie liczba wyjątków, kolejka zadań albo zużycie zasobów. Bez metryk problem staje się widoczny dopiero po awarii lub spadku sprzedaży.
Od jakich metryk zacząć w sklepie internetowym?
Od dostępności i czasu działania krytycznej ścieżki: karta produktu, dodanie do koszyka, przejście do checkoutu i potwierdzenie płatności. Następnie warto dodać błędy aplikacji, opóźnienia API, kondycję bazy danych, kolejki oraz Core Web Vitals z urządzeń użytkowników.
Czy same logi wystarczą do wykrywania awarii?
Nie. Logi pomagają wyjaśnić, dlaczego wystąpił problem, ale nie są najlepszym sygnałem do mierzenia skali i wpływu. Do szybkiego wykrycia potrzebujesz metryk i alertów, a do analizy przyczyny skorelowanych logów oraz trace’ów.
Od wiedzy do wyniku

Czy o problemie w systemie dowiadujesz się od klienta?

Pokaż nam krytyczny proces: zakup, formularz, kalkulację albo integrację. Sprawdzimy, gdzie brakuje pomiaru i które sygnały powinny uruchamiać reakcję zespołu.