Metryki w aplikacji, to rezultaty jej działania przechwytywane przez pewien okres czasu. Mogą one być pomocne przy wykrywaniu anomalii wydajności oraz prognozowaniu wpływu aplikacji na użytkowników końcowych.
Cześć
Dziś skupimy się wyłącznie na metrykach. Opowiem czym są i spróbuję uświadomić, gdzie się przydają. Nie będziemy skupiali się na narzędziach i technologiach, które wspierają lub rozwiązują ten proces za nas (aczkolwiek to też jest ciekawy temat).
W dzisiejszym artykule:
Czym są metryki?
- pomiaru wydajności,
- planowania elementów pracy,
- pomiaru produktywności,
- pomiaru zadowolenia klientów.
Jak widzisz, w większości przypadków metryki odnoszą się do pomiarów. Są to wartości będące dla nas pewnym wyznacznikiem do którego będziemy chcieli dążyć lub od którego będziemy uciekali. Metryki w aplikacji można podzielić na dwie kategorie: techniczne oraz biznesowe.
Metryki techniczne dotyczą takich parametrów jak:
- średnie czasy odpowiedzi,
- liczba błędów,
- zużycie zasobów serwera – procesor, RAM, dysk,
- dostępność aplikacji,
- czas kompilacji aplikacji.
Biznesowe natomiast są konkretnymi pomiarami przynoszącymi wartość bezpośrednio dla biznesu:
- satysfakcja użytkownika (Apdex Score),
- ilość wywołań danej metody,
- liczba porzuceń na stronie,
- czas przez jaki użytkownik przebywa w aplikacji,
- interakcje – zdarzenia, które zostały wywołane przez użytkownika wchodzącego w interakcję z systemem,
- czas potrzebny do wdrożenia.
Dostępnych jest o wiele więcej metryk, zarówno technicznych jak i biznesowych. Ja podałem jedynie kilka bardziej generycznych. Ściągę z możliwymi metrykami znajdziesz tutaj Ultimate Monitoring Metrics Cheatsheet. Istotne jest jednak to, aby mieć świadomość istnienia obu rodzaji metryk
Po co gromadzić metryki?
Metryki pomagają zrozumieć aktualny stan całej infrastruktury i aplikacji. Są przydatne indywidualnie, ponieważ można skonfigurować reguły alertów, które będą powiadamiane o spełnieniu określonych warunków. Dodatkowo, gdy wiele metryk jest zagregowanych na jednym dashboardzie (zwłaszcza gdy reprezentują różne części infrastruktury), zapewniają pełny obraz środowiska. Możesz je skorelować i zidentyfikować historyczne trendy, wzorce, zobaczyć wpływ wszelkich problemów, które wystąpiły lub zmian, które wprowadziłeś.
To jakich metryki będziesz potrzebować, jest w dużym stopniu zależne od tego jaką aplikację rozwijasz, dla kogo ją rozwijasz i jaka jest wizja na jej przyszłość. W świecie idealnym dobrze byłoby gromadzić wszystko. Jednak taki zabieg będzie kosztował sporo i niestety rzadko kiedy się zwróci. Dlaczego? Bo implementacja i analiza metryk kosztuje najcenniejszy zasób – czas (a jak czas to i pieniądze).
Tak więc, metryki są punktem odniesienia. Odpowiednie metryki dają wartość zarówno biznesowi jak i zespołowi rozwijającemu aplikację (np. wiemy ilu użytkowników korzysta z danej funkcjonalności, więc ją optymalizujemy). Aby metryka rzeczywiście dała wartość musi ona być jednoznaczna, mierzalna i łatwo dostępna! Dodatkowo metryki można zintegrować z narzędziem monitorującym oraz skonfigurować alerty.
Infografika z pomocą
Podsumowanie
Moim zdaniem metryki w aplikacji są istotne, ponieważ dają wartość Tobie, zespołowi i biznesowi, z którym pracujesz. Dzięki nim wiesz co dzieje się w samej aplikacji i w jaki sposób jest ona używana przez użytkowników końcowych. Należy jednak pamiętać o fakcie, że implementacja metryk nie zawsze będzie rzeczą błahą (choć dziś istnieje wiele narzędzi, które znacznie to ułatwiają) i że ktoś będzie musiał je analizować.
Wydaje mi się, że przy zabawie z metrykami przydają się również umiejętności miękkie. Musimy umieć rozmawiać z ludźmi od biznesu i tłumaczyć im dlaczego dana metryka przyda się w dłuższym horyzoncie czasowym a inna nie. Nie wszystkie firmy dojrzały jeszcze do samoświadomości i rezultatów jakie wynikają z implementacji metryk. Często jest to skorelowane z szybko zmieniającą się załogą, niskim zaangażowaniem oraz intensywnym rozwojem. Czy jest na to rada? Nie wiem 🙂
Źródła:
- The Most Important Metrics You Need to Monitor Your Application
- An Introduction to Metrics, Monitoring, and Alerting
- Ultimate Monitoring Metrics Cheatsheet
Za tydzień
Przeniesiemy się do Springa i porozmawiamy o tym jak bronić się przed oddaniem władzy w ręce framework’u.
Fajny, zwięzły wpis wprowadzający w tematykę metryk. Imho bardzo dobry pomysł z infografiką (zwłaszcza, że można ją sobie zapisać i wrócić na szybko do niej i przypomnieć sobie core w kilka sekund). Chętnie poczytałbym też coś technicznego w kontekście aplikacji z jvm’owej piaskownicy (spring i pochodne).