• Czas czytania ~4 min
  • 27.03.2023

Był czas, kiedy APM był wszystkim, czego potrzebowali. Starsze monolityczne usługi sieciowe były monitorowane za pomocą narzędzi do monitorowania wydajności aplikacji (APM). Narzędzia te zapewniają szczegółowy wgląd w działanie usługi sieci Web i mogą ostrzegać administratorów o potencjalnych problemach, zanim staną się powszechne. Tak więc APM wyprowadził nas z epoki, w której użytkownicy byli pierwszymi osobami, które zauważyły poważny problem. Zamiast tego nasze narzędzia monitorujące mogły wcześniej informować nas, że szykują się kłopoty.

Narzędzia APM dają wgląd w kluczowe wskaźniki wydajności, takie jak czas odpowiedzi, liczba żądań, wskaźniki błędów, wykorzystanie zasobów i inne. Te dane mogą służyć do identyfikowania problemów w wykonywaniu kodu, wykrywania przecieków pamięci lub innych problemów, które mogą mieć wpływ na wydajność usługi sieci Web.

Wiele zespołów nadal korzysta z tradycyjnego monitorowania aplikacji i jest bardzo zadowolonych z wyników!

Ale oto kilka pytań, które należy zadać na temat narzędzi takich jak :

1. Czy jesteśmy zaangażowani w otwarte standardy?

Korzystając z otwartych standardów, inżynierowie operacyjni mogą zaoszczędzić czas i zasoby, unikając konieczności opracowywania złożonych, zastrzeżonych obejść lub niestandardowych protokołów dla swoich systemów. Ponadto otwarte standardy zapewniają dobrze zdefiniowane ramy, w których zespoły inżynierów mogą współpracować nad opracowywaniem lepszych procesów operacyjnych i systemów w wielu organizacjach lub działach w ramach jednej organizacji. Standardowe narzędzia APM przesyłają dane we własnych protokołach, a im więcej musisz się o nich dowiedzieć, tym więcej zyskujesz specjalistycznego doświadczenia dostawcy, a nie otwartych standardów. To prowadzi nas do drugiego problemu:

2. Czy jesteśmy zamknięci w jednym dostawcy?

Niedawny incydent związany z próbą unieważnienia przez DataDog zobowiązania OpenTelemetry wzbudził poważne obawy dotyczące dostawców APM. Kiedy ci dostawcy twierdzą, że "przyjmują" otwarte standardy, czy naprawdę mówią, że zużywamy wszelkie dane, które chcesz nam przesłać, po prostu nie możesz zabrać swoich danych nigdzie indziej.

Zasady te przypominają nam trochę stare złe czasy SaaS, w których usunięcie danych z CRM lub narzędzia biurowego było prawie niemożliwe. Jak to się stało, że firmom APM uchodziło to na sucho przez tak długi czas? Prawdopodobnie dlatego, że przenośność w tym przypadku nie polega tak naprawdę na przenoszeniu danych historycznych. Pomyśl o tym: podczas migracji monitorowania do innej usługi prawdopodobnie nie ma znaczenia, czy przyniesiesz ze sobą dane dotyczące wydajności z 2017 roku.

Tak więc zablokowanie w tym przypadku nie polega na tym, że twoje dane są zakładnikami, a bardziej na czasami ekstremalnych trudnościach związanych z przejściem do różnych usług.

Jeśli używasz narzędzia APM, naprawdę musisz zgodzić się, że będziesz trzymać się jednego narzędzia przez bardzo długi czas, może przez lata.

3. Jak monolityczna jest nasza architektura?

Podczas gdy APM działa dobrze w monolitycznym środowisku i dobrze, jeśli masz uruchomionych 12 lub więcej różnych usług, gdy wyjdziesz znacznie dalej, będziesz walczył. Zobacz "Twoja architektura definiuje twoje przeznaczenie" w dalszej części tego utworu

4. Ile elastyczności i personalizacji potrzebujesz?

Jednym z pierwotnych punktów sprzedaży APM było świetne doświadczenie "out of the box". Instalując w aplikacji Rails, w ciągu kilku godzin otrzymasz świetną mapę swojego narzędzia. Ale dzięki każdemu narzędziu APM doświadczenie "po wyjęciu z pudełka" może zacząć sprawiać wrażenie, jakbyś był "zaszufladkowany".

W końcu monitorowanie może zrobić o wiele więcej niż znalezienie problemów z wydajnością. Może chcesz przeprowadzić skanowanie zabezpieczeń, kontrole zgodności lub zebrać informacje biznesowe. Dzięki narzędziu APM o zamkniętym kodzie źródłowym będziesz w dużej mierze ograniczony do zastosowań, które przewidzieli twórcy narzędzia.

Dzięki otwartej telemetrii, zwłaszcza przy użyciu OpenTelemetry Collector, można wysyłać, formatować i wyświetlać dane z usług, niezależnie od przypadku użycia.

Twoja architektura definiuje Twoje przeznaczenie

Wybranie (i bazowego projektu OpenTelemetry, dla którego utworzono ) jest o wiele łatwiejsze, jeśli masz dużą liczbę mikrousług. Ile to duża liczba? Zanim masz dziesiątki mikrousług, na wielokrotności liczby programistów w zespole, nadszedł czas, aby pomyśleć o OpenTelemetry.

OpenTelemetrypozwala nam instrumentować, monitorować i debugować dużą liczbę mikrousług w efektywny sposób. Jest to szczególnie ważne w systemie rozproszonym z dużą liczbą usług, które komunikują się ze sobą. Dzięki OpenTelemetry możemy szybko diagnozować problemy w usługach i wykrywać wąskie gardła wydajności. Dzięki możesz łatwo wyświetlać i udostępniać rozproszone ślady, które pokażą, jak żądania są przesyłane przez aplikację.

Oto tabela kluczowych różnic między i

Szczegółowe śledzenie zszybkością 10 na minutę

Nieograniczone rozproszone śledzenie

Ograniczone do monitorowania

zapleczaKompleksowe monitorowanie (niezależne od języka) z dodatkowym wglądem w kod

frontonuInstrumentacja agenta, która obejmuje kilka najlepszych struktur

zaplecza Niezależne od dostawców projekty OpenTelemetry obejmują dziesiątki języków i struktur

Próbkowanie ogonowe z próbkowaniem prawdopodobieństwa
Wydajne, kompaktowe dane

o zajmowanych wymiarach Zaawansowane filtrowanie, któreumożliwia wysyłanie danych, które chcesz zobaczyć, i filtrowanie szumów

Integracje

monitorowania błędówKonsolidacja monitorowania błędów, ze wszystkimi błędami standaryzowanymi za pomocąOpenTelemetry Ograniczone monitorowanie Kubernetes(tylko to, co działa wewnątrz kontenera

Dogłębne zrozumienie platformy Kubernetes dzięki projektowi

OpenTelemetry

K8s Kontekst niestandardowy jest ograniczony i specyficzny dla każdego agenta

Wyszukuj według atrybutów niestandardowych i dodawaj tyle, ile chcesz za pomocą standardów

OpenTelemetryLinki do narzędzia

mgmt dziennikaSkorelowane metryki i dzienniki

Opracowany i utrzymywany przez drużynę skautów, którą kochasz

Dostajesz tę samą drużynę!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297