Sentry

O monitorowaniu aplikacji: Centralne zbieranie błędów

Podczas pracy z każdym systemem informatycznym użytkownik, programista czy administrator musi zmierzyć się z problemem obsługi błędów. Jak można sobie z nimi radzić? 

 

Są różne podejścia do obsługi błędów: 

  • można ich nie mieć 😉 
  • można je ignorować
  • można też je zbierać, analizować i na ich podstawie wyciągać wnioski i przygotowywać poprawki. 

 

Niestety – jedynym programistą, który uważa, że nie robi błędów jest taki, który skutecznie je ignoruje. I dlatego jedyną sensowną strategią radzenia sobie z błędami jest ich zapisywanie i analiza. Ważne też, by informacje związane z pojawiającymi się błędami były przechowywane w bezpieczny sposób, gdyż często komunikat błędu może zawierać informacje poufne. Dodatkowo – trzeba postarać się, by dostęp do informacji o pojawiających się błędach był szybki i wygodny – w przeciwnym wypadku trudno nam będzie zachęcić programistów do tego, by analizowali je regularnie. 

 

Po       analizie istniejących rozwiązań, zdecydowaliśmy się na wykorzystanie 

 

  •  systemu który coraz częściej jest uznawany za standard na polu analizy błędów.

 

sentry.io oferuje rozwiązanie cloudowe, gotowe do integracji z systemami informatycznymi napisanymi w większości popularnych języków i technologii. Niestety – rodzaj danych przetwarzanych przez Mentax SA wyklucza rozwiązania hostowane w chmurze publicznej. Na szczęście SENTRY jest narzędziem OpenSource, które z niewielkim wysiłkiem można postawić we własnej serwerowni. I na takie rozwiązanie się zdecydowaliśmy. Dzięki wykorzystaniu docker uruchomienie i aktualizacja SENTRY i wszystkich (kilkunastu) narzędzi wymaganych do jego poprawnego działania przebiega sprawnie (jeżeli jednak w Twojej firmie potrzebowalibyście pomocy – nasz dział IT chętnie Was wesprze).

 

Jakie korzyści da nam centralne zbieranie informacji o błędach w SENTRY?

 

  1. Błędy z wielu systemów i serwerów są dostępne w jednym miejscu. Jest to szczególnie ważne w dzisiejszych czasach, gdy praca z mikroserwisami, systemami uruchamianymi na wielu serwerach lub klastrach serwerów, najczęściej w kontenerach, wręcz uniemożliwia przeglądanie plików z logami błędów bezpośrednio w aplikacji lub na jej serwerze. 
  2. Jeden błąd potrafi w kilka chwili pojawić się setki razy. Tym samym jakiś drobny „notice” może ukryć znacznie ważniejsze problemy. SENTRY agreguje błędu tego samego typu, informując o tym, gdzie się wydarzyły i jakich użytkowników dotyczyły. Pozwala to szybko wybrać te tematy, które powinny być naprawione w pierwszej kolejności. 
  3. Wraz z informacją o błędzie programista może dostać dostęp do szeregu informacji o stanie systemu, użytkowniku podczas którego pracy dany błąd się uaktywnił, danych wprowadzonych przez tego użytkownika, a także dokładną informację o miejscu w kodzie, gdzie dany problem się pojawił. Dostęp do tych informacji w znaczący sposób przyspiesza proces debugowania i usunięcia niechcianego „Buga”. Jest to możliwe nie tylko w przypadku skryptowych języków programowania, lecz również aplikacji w pełni skompilowanych, dzięki możliwości załączenia do SENTRY tzw. „source map” powiązanych z danym wydaniem.
  4. Wszystkie błędy, które dotyczą danego projektu lub funkcjonalności mogą być udostępnione w jednym miejscu, w ujednolicony sposób. SENTRY pozwala by na jednej instancji systemu mieć dodane wiele projektów, które automatycznie grupują zgłoszenia. Podział na projekty pozwala na ograniczenie dostępu do błędów z konkretnego systemu lub środowiska dla określonej grupy programistów. Tym samym ułatwia im na skupieniu się na tematach, które bezpośrednio ich dotyczą. Możliwe jest też przypisanie konkretnego problemu do określonej osoby która ma go rozwiązać. Lub wygenerowanie zgłoszenia w JIRA, Gitlab lub innym systemie do obsługi zadań, które będzie zawierać informacje o danym błędzie.
  5. Każdy błąd może być powiązany z konkretną wersją aplikacji. W ten sposób o wiele łatwiej znaleźć moment, w którym dany problem się pojawił oraz oznaczenie wersji / wydania w którym powinien zostać usunięty. SENTRY poinformuje nas również o tym, gdy dany błąd pojawi się ponownie, po tym, gdy już miał zostać usunięty.
  6. Możemy ustawić szereg powiadomień i alertów, które SENTRY może przekazywać na maila, SMS lub inny komunikator w momencie pojawienia się problemu, lub w postaci zbiorczych raportów. Wszystko w czytelnej i bardzo ładnej szacie graficznej.

 

 

Oczywiście korzyści płynących z korzystania z SENTRY jest znacznie więcej. 

 

Jeżeli zostanie poprawnie zintegrowane z procesem testów i wydawania aplikacji, może stać się kluczowym narzędziem do wykrywania, analizy i rozwiązywania pojawiających się błędów i problemów. Pozwala nawet na analizę wydajności i czasu działania poszczególnych elementów naszej aplikacji, ale to już temat na inny artykuł. 

 

A więcej informacji na temat możliwości SENTRY  jest dostępnych na stronie sentry.io (en) Udanej analizy błędów! 

 

Artykuł jest pierwszym z serii „O monitorowaniu aplikacji”. Zapraszamy do pozostałych: Zbieranie logów oraz Metryki systemowe. Już wkrótce pojawią się na naszym blogu.

 

Autor: Dawid Polak (CTO) 

 

Źródło zdjęć

 


Opublikowano:

Mentax na Facebook'u