Observability - przegląd najpopularniejszych narzędzi
Podziel się

Spis treści:

Observability – najważniejsze kryteria wyboru narzędzia

Każdy system ma swoje własne wymagania i potrzeby, aby mógł być w pełni obserwowalny. Podczas doboru narzędzia observability, które będzie odpowiednie dla danego systemu, należy zwrócić uwagę na wiele czynników, m.in.:

  1. Stopień przejrzystości oraz intuicyjności interfejsu użytkownika, co przekłada się na sprawność w użytkowaniu narzędzia. Kiedy pojawia się problem w użytkowaniu aplikacji, rozwiązania najczęściej szukamy w dokumentacji lub na forach. Choć z pozoru może się to wydawać błahe,  to z pozoru błahy czynnik, ma jednak duże znaczenie, ponieważ duża popularność narzędzia przekłada się na rozbudowane community, a to w połączeniu z dobrze napisaną dokumentacją znacząco ułatwia korzystanie z narzędzia.
  2. Kolejnym ważnym aspektem jest zakres funkcjonalności narzędzia. Podstawowe funkcjonalności takie jak wyszukiwanie i filtrowanie danych, zbieranie danych (na bieżąco z logów, z plików w formacie XML lub JSON), indeksowanie, modelowanie oraz wizualizacja, powinny być nieodzownym elementem każdego narzędzia.
  3. Dodatkowe funkcjonalności takie jak APM (zarządzanie wydajnością systemu), wgląd w infrastrukturę systemu, rozwiązania ML (sztuczna inteligencja), monitorowanie UX (doświadczenia użytkowników z aplikacją), wysyłanie alertów, powiadomień itp. sprawiają, że obraz całego systemu staje się bardziej przejrzysty, a to poprawia skuteczność observability.
  4. Możliwość integracji narzędzia z programami zewnętrznymi.
  5. Możliwość automatyzacji wybranych procesów.
  6. Łatwość instalacji oraz początkowej konfiguracji narzędzia.
  7. Koszt zakupu i korzystania z narzędzia.

Splunk observability

Splunk jest jednym z najpopularniejszych narzędzi do observability. Ogromna liczba funkcjonalności sprawia, że użytkownik ma praktycznie nieograniczone możliwości podczas pracy z systemem.

Dane do Splunka można przekazywać za pomocą Universal Forwardera. Jego główną zaletą jest niskie zużycie zasobów sprzętowych, między innymi dzięki temu, że nie posiada on swojego interfejsu użytkownika. Forwarder umożliwia m.in. nadawanie tagów metadanym, konfigurację buforowania oraz kompresję danych, a do tego jest zabezpieczany SSL.

Splunk pozwala przeszukiwać trafiające do niego dane przy pomocy SPLa (Search Processing Language), sortować, filtrować, a także dokonywać ekstrakcji pól z danych, dzięki czemu można je łatwiej zrozumieć i analizować. Następnie dane można dalej wizualizować w postaci tabel, zestawień, wykresów, czy map oraz zestawiać na dashboardach (panelach), które są pomocne w ich zrozumieniu.

Splunk udostępnia również bardziej wyspecjalizowane narzędzia przeznaczone do pracy na określonych typach danych.

Splunk Infrastructure Monitoring

Splunk Infrastructure Monitoring pozwala uzyskać wgląd w infrastrukturę oraz zasoby środowisk wielochmurowych i przeprowadzić ich wydajną analizę. Narzędzie zapewnia również szerokie wsparcie dla zbierania wszelkiego rodzaju danych  – począwszy od metryk systemowych aż po niestandardowe dane z aplikacji.

Splunk Application Performance Monitoring

Splunk Application Performance Monitoring daje możliwość rozwiązywania problemów z mikroserwisami i aplikacjami dzięki rozproszonemu śledzeniu. Narzędzie zbiera i analizuje ślady z każdej usługi podłączonej do Splunk Observability Cloud i zapewnia pełny dostęp do wszystkich danych aplikacji.

Splunk Log Observer

Splunk Log Observer umożliwia badanie i eksplorację logów bez konieczności nauki języka zapytań. Pozwala również na ekstrakcję pól z logów w celu skonfigurowania reguł ich przetwarzania i przekształcanie ich na bieżąco w momencie, kiedy napływają.

Splunk Real User Monitoring

Splunk Real User Monitoring udostępnia monitorowanie doświadczenia użytkownika w całości trwania procesu. Narzędzie posiada dwa rozwiązania:

  • dla aplikacji internetowych stworzonych na przeglądarki;
  • dla aplikacji mobilnych na systemy iOS oraz Android.

Splunk Synthetic Monitoring

Splunk Synthetic Monitoring pozwala na poprawę doświadczenia użytkownika z API oraz przeglądarkami internetowymi. Narzędzie daje zespołom technicznym możliwość tworzenia testów szczegółowych, w celu proaktywnego monitorowania szybkości i niezawodności stron oraz aplikacji internetowych.

Splunk zapewnia spójny i intuicyjny interfejs użytkownika. W całości aplikacji zastosowane jest wyspecjalizowane słownictwo, a menu aplikacji pozwala na szybki dostęp do wszystkich funkcjonalności.

Community  i dokumentacja Splunk, Splunkbase

Warto również wspomnieć o rozbudowanym Splunk community oraz starannie i zrozumiale napisanej dokumentacji, co przekłada się na dużą ilość ogólnodostępnej wiedzy.

Dodatkowym, dużym atutem Splunka jest ponad 2400 wspieranych aplikacji znajdujących się w Splunkbase – pozwalają one na rozwiązanie większości problemów, które mogą pojawić się podczas pracy z danymi.

Splunk observability – podsumowanie

  1. Splunk oferuje bardzo szeroki zakres przydatnych narzędzi i funkcjonalności observability, które są niezwykle pomocna na wielu płaszczyznach obróbki oraz analizy danych.
  2. Splunk jest rozwiązaniem idealnym do monitorowania rozbudowanych środowisk i pracy z dużą ilością różnych typów danych pochodzących z różnych źródeł.

Elastic observability

Elastic to kolejne, popularne rozwiązanie w zakresie observability. Elastic observability pozwala na zbieranie każdego rodzaju danych. Następnie dane przekazywane są do Elasticsearch, dzięki któremu można te dane: przekształcać, wzbogacać, ekstraktować z nich wybrane pola i poddawać je analizie.

Odpowiednio przygotowane dane można również zwizualizować na wiele sposobów, m.in. w postaci diagramów, map oraz wykresów, za pomocą Kibany.

Elastic Logs

Dzięki wbudowanej aplikacji Elastic Logs użytkownik ma możliwość analizy logów z hostów, usług, Kubernetesa, Apache oraz wielu innych. Aplikacja pozwala na sortowanie, filtrowanie, przypinanie oraz zaznaczanie interesujących nas danych napływających w czasie rzeczywistym.

Elastic Infrastructure

Aplikacja Elastic Infrastructure obsługuje metryki systemowe zbierane z wielu źródeł, np. serwerów, Dockera, Kubernetesa, jak również usług i aplikacji. Dzięki temu narzędziu użytkownik ma możliwość ciągłego monitorowania stanu systemu. Metryki mogą być sortowane oraz filtrowane po hostach, kontenerach, czy instancjach.

Elastic Application Performance Monitoring (APM)

Elastic posiada również własną aplikację do monitorowania danych dotyczących wydajności i błędów systemu. Elastic Application Performance Monitoring (APM) zapewnia wgląd w te dane w czasie pracy systemu. Aplikacja posiada wsparcie dla najpopularniejszych języków programowania oraz OpenTelemetry. Dzięki zastosowaniu machine learning użytkownik ma możliwość szybkiej korelacji infrastruktury oraz metadanych aplikacji w celu określenia wartości odbiegających od normy oraz wychwytywania nieprawidłowych zachowań aplikacji.

Elastic Heartbeat

Instalacja oraz konfiguracja aplikacji Heartbeat daje możliwość monitorowania danych dotyczących czasu sprawności aplikacji (dostępność hostów, czas działania usług, endpointy stron internetowych oraz monitoring API).

Elastic Uptime

Aplikacja Uptime udostępnia szczegółowe dane dotyczące stanu usług i aplikacji. Dzięki integracji z Elastic Synthetics możliwe jest monitorowanie endpointów sieciowych, za pomocą monitorów HTTP, ICMP oraz TCP.

Elastic Real User Monitoring

Elastic zapewnia również wgląd w dane dotyczące doświadczeń użytkowników z systemem, dzięki aplikacji Real User Monitoring (RUM). RUM pozwala zbierać, mierzyć oraz analizować dane dotyczące wydajności, odzwierciedlające realne doświadczenia użytkowników. Dane mogą być analizowane według systemów operacyjnych użytkowników, ich przeglądarek, lokalizacji oraz adresów URL.

Dzięki tym danym administrator aplikacji jest w stanie stwierdzić, w jaki sposób aplikacja działa na systemach użytkowników końcowych oraz określić problemy występujące zarówno po stronie klienta (np. problemy z wydajnością), jak i po stronie serwera (np. opóźnienia aplikacji).

Kibana Management

Elastic udostępnia rozbudowany mechanizm alertów, dzięki któremu użytkownik może na bieżąco dowiadywać się o problemach występujących w środowisku i aplikacjach Elastica. Mechanizm ten zapewnia duży zestaw wbudowanych działań i reguł, które mogą zostać wykorzystane w przypadku wykrycia nieprawidłowości. Zarządzanie tym mechanizmem jest możliwe z poziomu Kibana Management.

Elastic observability – podsumowanie

  1. Elastic jest bardzo wygodnym i przyjemnym narzędziem dla użytkownika. Duża ilość materiałów naukowych oraz poradników – zarówno w postaci obszernych dokumentacji, jak i filmów – pozwala w szybki sposób przyswoić zasady obsługi tego środowiska.
  2. Elastic, w przeciwieństwie do Splunka,  jest rozwiązaniem idealnym do monitorowania małej lub średniej ilości danych.

Datadog observability

Datadog jest w pełni chmurową, stosunkowo nową platformą do observability, pozwalającą na zbieranie, wizualizację oraz analizę danych z ponad 500 technologii. Narzędzie umożliwia pełny wgląd w całą infrastrukturę systemu, aplikacje oraz usługi. Do zbierania danych Datadog wykorzystuje agentów, którzy są instalowani na hostach a ich kod źródłowy jest dostępny na GitHubie.

Datadog – wizualizacja danych

Wizualizacja danych w Datadog odbywa się za pomocą:

  • dashboardów (układ siatkowy, może zawierać obrazy, wykresy oraz logi);
  • timeboardów (układ automatyczny, reprezentuje stan pojedynczego punktu w czasie);
  • screenboardów (dashboardy ze swobodnym układem).

Datadog – zarządzanie alertami

Datadog posiada rozbudowany system zarządzania alertami. System ten składa się z monitorów, które na bieżąco sprawdzają m.in. metryki, dostępność integracji, czy endpointy sieciowe. Informuje on użytkownika kiedy w systemie zachodzą krytyczne zmiany. Dzięki zastosowaniu machine learning platforma eliminuje wyświetlanie alertów typu false positive.

Datadog Application Performance Management (APM)

Datadog Application Performance Management (APM) jest aplikacją dającą wgląd i informacje na temat wydajności i występujących błędów, dzięki gotowym, wbudowanym dashboardom.

Datadog Real User Monitoring (RUM)

Datadog Real User Monitoring (RUM) daje pełnowymiarowy wgląd w doświadczenia użytkownika w czasie rzeczywistym. Dzięki tej funkcjonalności administrator systemu dostaje informacje o wydajności stron internetowych, ekranów aplikacji mobilnych, działaniach użytkowników oraz żądaniach sieciowych. Aplikacja pozwala również na

  • sprawne zarządzanie błędami występującymi w systemie;
  • analizę użytkowników aplikacji, dzięki informacjom na temat: kraju, urządzeniu, systemie operacyjnym, a także sposobie, w jaki użytkownik wchodzi w interakcję z systemem.

Datadog Watchdog

Datadog Watchdog jest funkcją o charakterze algorytmicznym dla APM oraz metryk, która automatycznie wykrywa anomalie oraz potencjalne zagrożenia dla systemu i aplikacji.

Datadog Continuous Integration (CI) Visibility

Datadog Continuous Integration (CI) Visibility łączy zebrane informacje o testach CI oraz wynikach pipelinów, wzbogacając je o dane dotyczące wydajności, trendów oraz niezawodności CI.

Datadog Database Monitoring

Datadog pozwala również na głęboki wgląd w stan baz danych dzięki funkcji Database Monitoring. Umożliwia ona monitorowanie wydajności zapytań na bazie danych oraz jej planu wykonania (kosztowego algorytmu dostępu do danych). Dzięki temu administrator bazy danych uzyskuje pełny wgląd w jej stan i może sprawniej rozwiązywać problemy, które się pojawiają.

Datadog observability – podsumowanie

  1. Datadog cechuje się prostotą w obsłudze oraz czytelnym interfejsem.
  2. Platforma zapewnia płynne przejścia pomiędzy funkcjonalnościami, co pozytywnie wpływa na szybkość pracy i doświadczenia użytkownika.
  3. Szeroki wachlarz rozwiązań Datadog przeznaczonych do pracy z danymi jest wzbogacony o nowoczesne funkcje, np. obsługę  drag-and-drop, która ułatwia projektowanie dashboardów.
  4. Wadą Datadog jest widoczny spadek wydajności przy integracji platformy z wieloma aplikacjami.

AppDynamics observability

AppDynamics jest aplikacją chmurową, która pomaga wprowadzić pełnowymiarowe observability do systemu. Narzędzie daje wgląd w pracę całego systemu, umożliwiając rozwiązywanie występujących w nim problemów oraz identyfikację ich przyczyn, a także pozwala zwiększyć wydajność systemu.

Platforma zbiera dane dzięki agentom razem z ich kontrolerami. Agenci są wtyczkami lub rozszerzeniami, które działają w całym ekosystemie aplikacji, zbierając dane dotyczące jej wydajności, runtime’u oraz zachowania. Kontrolery zbierają dane od agentów w czasie rzeczywistym, wizualizują wydajność i zachowanie aplikacji, a także służą do zarządzania działaniami agentów.

AppDynamics dzięki zbieraniu danych o przepływie żądań w środowisku, tworzy dynamicznie zmieniającą się mapę, która przedstawia wydajność systemu. Narzędzie pozwala również na śledzenie doświadczenia użytkowników ze stronami internetowymi oraz aplikacjami mobilnymi w czasie rzeczywistym.

AppDynamics – mechanizm alertów

AppDynamics zapewnia mechanizm alertów, który można skonfigurować tak, aby informował użytkownika o problemach występujących w wybranych przestrzeniach systemu. Specjalna funkcja „anomaly detection” pozwala na wykrywanie wszystkich problemów pojawiających się w systemie.

AppDynamics Dash Studio

Wbudowana aplikacja Dash Studio umożliwia wizualizację danych dzięki wykorzystaniu nowoczesnych, wysoce konfigurowalnych i stosunkowo łatwych w obsłudze paneli. Wraz z zastosowaną technologią ThousandEyes znacząco usprawnia analizę danych.

AppDynamics observability – podsumowanie

  1. Platforma AppDynamics zapewnia wysoki poziom usług observability i oferuje użytkownikowi wiele narzędzi do pracy z danymi, na wielu płaszczyznach – począwszy od ich zbierania, poprzez wyszukiwanie i przetwarzanie zebranych danych, aż po ich wizualizację.
  2. Program, choć posiada skomplikowany proces instalacyjny, jest intuicyjny i łatwy w obsłudze.
  3. Wadą AppDynamics jest dość uboga dokumentacja oraz delikatnie wygórowana cena w stosunku do innych narzędzi dostępnych na rynku.

KubeSphere observability

KubeSphere zapewnia integrację wielu wygodnych w użyciu narzędzi przeznaczonych do:

  • wielowymiarowego monitorowania metryk systemowych;
  • zbierania i przetwarzania logów;
  • wizualizacji zebranych danych;
  • obsługi alertów i powiadomień.

KubeSphere Monitoring

KubeSphere Monitoring pozwala na ciągłe monitorowanie metryk zasobów sprzętowych (CPU, RAM, sieć, pamięć masowa) z podziałem na wszystkie węzły, a także monitorowanie komponentów usługowych pod kątem szybkiego lokalizowania ich awarii.

Zastosowanie struktury multi-tenant w zbieraniu i zarządzaniu logami redukuje zużycie zasobów, a jednocześnie zapewnia, że każdy serwis ma dostęp jedynie do swoich logów. Jest to dość popularna polityka stosowana w wielu narzędziach.

KubeSphere – zbieranie i wyszukiwanie logów

Oprócz własnego systemu do zbierania logów KubeSphere może pobierać je również od innych narzędzi takich jak Elastisearch, Kafka czy Fluentd. Platforma zapewnia wielopoziomowe zapytania do wyszukiwania logów.

KubeSphere – mechanizm alertów

Rozbudowane reguły alertów i powiadomień oparte są na stanie metryk. Elastyczna polityka alertów pozwala dostosować czas wykrywania anomalii, trwania alertów oraz ich priorytetu.

Platforma pozwala na wizualizację połączeń między mikroserwisami oraz całą topologię systemu.

KubeSphere observability – podsumowanie

  1. KubeSphere to open source’owe narzędzie, cechujące się łatwym wdrożeniem oraz obsługą.
  2. Platforma jest intensywnie rozwijana. W kolejnych wersjach narzędzia pojawiają się dodatkowe, przydatne  funkcjonalności, takie jak np. obsługa niestandardowych metryk, czy AlertManager z dodatkowymi kanałami powiadomień.
  3. Narzędzie posiada dość rozbudowaną dokumentację, jednak jej nawigacja wymaga drobnej poprawy (znalezienie odpowiedzi na nurtujący nas problem może okazać się czasochłonne).

Narzędzia observability – podsumowanie

Na rynku istnieje wiele platform i programów przeznaczonych do observability. Większość nie różni się zbytnio jeśli chodzi o dostępność podstawowych funkcjonalności do pracy z danymi, takich jak ich przeszukiwanie, filtrowanie, sortowanie i wizualizacja.

Narzędzia observability różnią się jednak między sobą pod względem dostępności bardziej zaawansowanych funkcjonalności do obsługi konkretnego rodzaju danych, co często ma przełożenie na cenę (narzędzia do przetwarzania dużej ilości danych za pomocą wyspecjalizowanych aplikacji są droższe).

Warto również zwrócić uwagę na dostępność i jakość dokumentacji opisującej dane narzędzie. Zaletą popularnych platform są liczne pomoce naukowe oraz instrukcje, które poprawiają jakość pracy.

Każdy system ma swoje własne wymagania i potrzeby, aby mógł być w pełni obserwowalny. Powoduje to, że dla każdego z nich, optymalne będą inne narzędzia observability. Dlatego zawsze należy wybierać najlepsze lub kilka najlepszych narzędzi do jednego konkretnego systemu. W tym celu niezbędne jest wykonanie analizy potrzeb i wymagań systemu, pod kątem wspomnianych w artykule kryteriów.

Nie zawsze wybór jest oczywisty – wtedy warto skonsultować się ze specjalistami dziedzinowymi.

Korzyści z observability jest naprawdę wiele, od tych najbardziej oczywistych jak szybkie i skuteczne wykrywanie i eliminowanie błędów występujących w systemie po te mniej oczywiste jak zwiększanie wydajności systemu co przekłada się na wzrost zysków. Jednak, żeby w pełni  korzystać z tych zalet, niezbędny jest właściwy dobór narzędzi.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

    Skontaktuj się z nami