Obserwowalność
Obserwowalność to zdolność rozumienia, co dzieje się wewnątrz systemu, patrząc na jego zewnętrzne sygnały. To nawyk dostrzegania związków przyczynowo-skutkowych, zanim przekształcą się w objawy. To ta część praktyki inżynierskiej, która zamienia „coś się zepsuło" w „wiemy dokładnie, co się zepsuło i dlaczego". Robimy własne projekty i zależy nam, żeby zauważać problemy wcześniej niż użytkownicy. Najlepiej w momencie, gdy jest to jeszcze drobne odchylenie metryki, na długo przed tym, jak stanie się incydentem z nocnymi telefonami.



Co uważamy za dobrą obserwowalność
Dobra obserwowalność odpowiada na pytanie „dlaczego i gdzie dokładnie". Rozświetla ścieżkę użytkownika, pokazuje degradację, wykrywa regresję po wdrożeniu, daje możliwość spokojnego wycofania zmian. Milczy w drobiazgach i mówi głośno, gdy naprawdę trzeba. Zła obserwowalność to dziesięć alertów, na które nikt nie patrzy, pulpit z trzydziestoma wykresami, na którym niczego nie da się znaleźć, logi w płaskim tekście, po których nie da się filtrować. Dobra to trzy metryki, które rzeczywiście opisują zdrowie systemu, i ustrukturyzowane logi, w których wyszukiwanie zajmuje sekundy. Lubimy podejście „trzech filarów" — metryki, logi, ślady. Metryki odpowiadają na „co dzieje się średnio", logi na „co wydarzyło się w konkretnej chwili", ślady na „jak żądanie przeszło przez system". Każdy filar jest przydatny sam w sobie. Magia zaczyna się, gdy są ze sobą powiązane: z alertu o metryce przechodzisz do logów, z logów do śladu, ze śladu do kodu.
Prywatny monitoring frontendu
Osobna miłość to prywatny monitoring frontendu. Widzisz prawdziwe błędy i wydajność w przeglądarce, a dane pozostają wewnątrz twojej infrastruktury. Bez przekazywania do usług zewnętrznych, bez dodatkowej zależności, bez tego, żeby twoi użytkownicy stali się ruchem dla czyjegoś modelu reklamowego. Składamy stack w oparciu o Grafana Faro, OpenTelemetry i własny backend do przyjmowania zdarzeń. Takie rozwiązanie kosztuje więcej niż podłączenie SaaS w pięć minut. Rok później masz infrastrukturę, która działa bez zewnętrznej zależności, bez limitów zdarzeń, z przewidywalnym kosztem posiadania.

Gdy sygnały backendu i frontendu żyją razem, przestajesz łączyć dane ręcznie i zaczynasz widzieć cały system naraz.
Alerty jako praktyka inżynierska
Ustawić alert jest łatwo. Dostroić go tak, żeby wyzwalał się tylko wtedy, gdy naprawdę wymagane jest działanie, jest trudno. Trzymamy się zasady: alert, który się wyzwolił i niczego nie wymagał — jest złym alertem. Być może próg jest ustawiony obok. Być może metryka jest wybrana niefortunnie. Być może problem już został rozwiązany automatycznie, a człowiek dostaje powiadomienie na próżno. Dlatego u nas każdy alert przechodzi przez filtr: co dokładnie zostało naruszone, dlaczego to ważne, jakie działanie jest oczekiwane, gdzie patrzeć. Przy jasnych odpowiedziach na te pytania alert zostaje. Takie alerty wyzwalają się rzadko i zawsze do rzeczy.
Jak to widać w naszych projektach
Zbieramy sygnały tak, żeby pomagały podejmować decyzje: jakie eksperymenty prowadzić, co optymalizować, gdzie jest wąskie gardło, ile kosztuje błąd. Tam, gdzie to pomaga, dodajemy szybkie sposoby oznaczania zdarzeń i eksperymentów, żeby zamienić wiarę na wiedzę. W produktach z ruchem użytkowników mamy domyślnie panel z Core Web Vitals, podziałem na kraje i urządzenia, osobne spojrzenie na „ogon" rozkładu — ponieważ średnie prawie zawsze kłamią. W usługach backendowych mamy tracing przez cały łańcuch, bez którego nie da się zrozumieć, dlaczego konkretne żądanie szło siedem sekund. Jeśli chcesz przejść od „wydaje się, że jest gorzej" do „oto metryka, oto przyczyna, oto moment regresji" — to dokładnie nasz styl.
Status
Kompetencja jest aktywna i rośnie razem z naszymi projektami — ponieważ bez obserwowalności każdy złożony system szybko zmienia się w błądzenie. Jesteśmy gotowi brać projekty od zera (postawić stack, skonfigurować alerty, nauczyć zespół) i zadania rozplątywania istniejącego zoo pulpitów: co zostawić, co usunąć, co wymienić. Prawosławne narzędzie do wyszukiwania i studiowania tekstów biblijnych. Szybkie wyszukiwanie, porównywanie tłumaczeń, interpretacje i tryb dla dzieci.
Wyszukiwanie Biblijne