• Czas czytania ~6 min
  • 15.05.2023

Prawdopodobnie słyszałeś ten termin Obserwowalność ostatnio. W przestrzeni monitorowania zachodzi fundamentalna zmiana, a za nią stoi obserwowalność. Obserwowalność sama w sobie jest szerokim tematem, więc w tym poście porozmawiamy o tym, co to znaczy przejść od monitorowania wydajności aplikacji do obserwowalności wydajności aplikacji .

MONITOROWANIE

WYDAJNOŚCI APLIKACJI Jeśli korzystano z tradycyjnej usługi APM, prawdopodobnie zainstalowano w aplikacji bibliotekę od tego dostawcy APM. Ta biblioteka lub agent będzie następnie zbierać metryki i ślady aplikacji podczas uruchamiania aplikacji w środowisku produkcji.

Ślady i metryki w APM Tradycyjni agenci APM

zbierają szczegółowe informacje o tym, co dzieje się pod maską, aby aplikacja mogła obsługiwać transakcje użytkownikom końcowym. Ale są one również w dużej mierze oparte na wskaźnikach. Generują one wstępnie zdefiniowane, zagregowane metryki dotyczące wydajności aplikacji jako całości. Metryki, takie jak przepływność, średni czas odpowiedzi i percentyle itp. Martwym prezentem na temat tego, czy usługa jest ukierunkowana na monitorowanie lub obserwowalność, jest przytłaczająca obecność pulpitów nawigacyjnych dla metryk. Nie oznacza to, że pulpity nawigacyjne nie mają miejsca w narzędziu Observability, ale nie powinny być główną funkcją. Nie powinieneś inwestować znacznej ilości czasu na konfigurowanie lub utrzymywanie pulpitów nawigacyjnych.

Brak kontekstu

Ponieważ tradycyjne usługi APM są nadal w dużej mierze oparte na metrykach, w danych brakuje ogromnej ilości kontekstu. Bez informacji kontekstowych z każdego śladu aplikacji niemożliwe jest zadawanie ważnych pytań, takich jak "Co się zmieniło? Dlaczego? Kogo to dotyczy?". Szczegółowe ślady zebrane z narzędzi APM są wybierane na podstawie prostej strategii próbkowania.

Pytania

z długiego ogonaTradycyjne monitorowanie aplikacji jest biegłe w rozwiązywaniu problemów z wydajnością, które mają wpływ na większość użytkowników. Problemy z dużym obrazem, takie jak "Czy witryna działa?" lub "Czy czas odpowiedzi wynosi 95% w ramach umowy SLA?" można rozwiązać za pomocą monitorowania. Na pytania z długim ogonem można odpowiedzieć tylko za pomocą rozwiązania obserwowalności . "Pokaż mi wszystkich użytkowników, których czasy odpowiedzi przekroczyły próg SLA w dowolnym momencie w tym miesiącu", "Czas odpowiedzi 95% wzrósł w ciągu ostatniej godziny. Wyświetl wszystkie usługi, które są zaangażowane w obsługę tych żądań i których użytkowników to dotyczy", "Użytkownik X ma długie czasy ładowania na punkcie końcowym Y. Pokaż mi wszystkie ślady od użytkownika X na punkcie końcowym Y". Obserwowalność umożliwia zadawanie tych pytań i wiele więcej na temat aplikacji.

Zduplikowane wysiłki

Dostawcy APM napisali agentów do dynamicznego wstrzykiwania kodu do frameworków i bibliotek aplikacji, takich jak Rails, Redis i MongoDB. Umożliwiło to zbieranie danych telemetrycznych z uruchomionych aplikacji. Oprzyrządowanie było trudnym, żmudnym i delikatnym procesem, a każdy dostawca APM musiał napisać własny. Spowodowało to zmarnowany wysiłek w instrumentowaniu frameworków i bibliotek.

Zadowolić się Subpar Single Pane

Obsługiwane poszczególne języki, solidność interfejsów API, spójność konwencji nazewnictwa i wiele czynników uniemożliwia udostępnianie lub integrację danych monitorowania. Ops, Developers, SRE, DevOps mają swoje ulubione narzędzia. Każdy z nich wybrał najlepsze narzędzie, aby zaspokoić swoje potrzeby w przeszłości, co doprowadziło do rozrostu narzędzi i usług. Wybierasz tę jedną taflę szkła? Przygotuj się na poważne kompromisy dla co najmniej kilku z tych zespołów, aby wszyscy korzystali z tej samej usługi.

OBSERWOWALNOŚĆ

WYDAJNOŚCI APLIKACJI Kontekst łączy wszystkich

Zamiast agenta APM określającego, które zagregowane metryki należy zebrać z wyprzedzeniem, zbierz wszystkie ślady aplikacji. W razie potrzeby uzyskaj metryki ze śladów na żądanie. Kroić i kostkować aspekty informacji kontekstowych zawartych w śladach na żądanie. Dane kontekstowe są kamieniem węgielnym, aby móc zadawać kluczowe pytania dotyczące obserwowalności i odpowiadać na te problemy związane z długim ogonem.

Wdrażanie standardów, wielojęzykowe i wieloplatformowe to ogromne przedsięwzięcie. Musisz być w stanie wysłać zapytanie, aby odpowiedzieć na pytania dotyczące obserwowalności we wszystkich językach używanych w środowisku produkcji. Wiedz też, że kontekst jest stosowany i znajduje się w tym samym miejscu w aplikacjach. Ramy, które definiują te standardy, są niezbędne dla obserwowalności.

Kształtowanie krajobrazu

Obs Ustandaryzowany punkt specyfikacji ma tutaj ogromny wpływ. Oto lista niektórych typów portów interfejsu zewnętrznego, których pamiętam na komputerach przez lata: Parallel, RS232, DB9, VGA, S-Video, DVI, DisplayPort, HDMI, MIDI, RCA, Component, Toslink, RJ11, RJ45, PCMCIA, SCSI, eSATA, AT, PS / 2, Firewire. Tak, mam pudełko pełne do podłączenia do któregokolwiek z nich, bez PCMCIA ...

Czy zauważyłeś, czego brakuje na liście? Racja, USB! Oczywiście mam milion USB. Ponieważ każda rzecz, która łączy się z moim komputerem, jest teraz USB . Jasne, różne formaty, ale protokół jest magicznie kompatybilny wstecz. Jeśli możesz go dopasować lub odwrócić do góry nogami raz lub dwa razy - lub więcej - to po prostu działa! Jest to rodzaj standardu, który każdy producent urządzeń peryferyjnych ma za sobą, ponieważ jest tak dobrze zaprojektowany. Jest to ogromna część tego, co kształtuje krajobraz obserwowalności i ostatecznie przyciąga przytłaczającą liczbę dostawców i programistów do poparcia jednej specyfikacji: OpenTelemetry .

Korelacje

Pozostanę przy temacie: standaryzacja . Dzięki uniwersalnemu i spójnemu zrozumieniu tego, co reprezentują dane, możemy tworzyć głębokie korelacje między aplikacjami, językami i stosem infrastruktury. Ten bogaty kontekst umożliwia maszynom pomoc w debugowaniu wydajności i operacyjnym, a nie tylko w ramach pojedynczej aplikacji.

Rozwój Kultura Zmian

Obserwowalność jest czymś więcej niż tylko narzędziem. Nie może dać ci wszechwiedzących mocy, jak w filmie "Limitless". Obserwowalność musi być celowo dodana do kodu i stosu. Programiści muszą pamiętać o dodaniu go podczas pisania i recenzowania kodu. Powinni zadawać pytania takie jak: "Czy trzeba to zmierzyć?" lub "Skąd mam wiedzieć, że to będzie działać zgodnie z oczekiwaniami?" Zastrzeżone rozwiązania APM mogą być świetnym początkiem, ale musisz sprawić, by obserwowalność była regularną myślą w kodzie. Nie zapomnij dołączyć informacji kontekstowych do przyszłego przeglądu śladów wydajności.

FACTORS ENABLING OBSERWOWALNOŚĆ

WYDAJNOŚCI APLIKACJI Ekonomiczne rozwiązania obliczeniowe i pamięci masowej o wysokiej kardynalnościObserwacja dużych zbiorów danych dotyczy wysokiej kardynalności i dużych zbiorów danych

. Koszt obliczeń i pamięci masowej w chmurze osiągnął punkt przegięcia. Możemy teraz wykorzystać te usługi w chmurze do przetwarzania na żądanie, aby odpowiedzieć na pytania dotyczące obserwowalności i zapewnić je naszym użytkownikom po rozsądnych kosztach.

Interfejsy API / SDK obserwowalności typu open source.

W końcu widzimy, że zbieżność wielu konkurencyjnych standardów łączy się w jeden, przy ogromnym wsparciu społeczności i branży: OpenTelemetry ! Specyfikacja OpenTelemetry definiuje specyfikacje danych w różnych językach, w tym interfejs API, zestawy SDK i protokoły transportowe. Tworzą one nową "lingua" dla obserwowalności , pozwalając pełnemu stosowi mówić tym samym językiem, gromadzić dane w tym samym formacie i ostatecznie transportować te dane do przetwarzania. Aby obserwowalność była naprawdę wszechobecna, potrzebujemy tego kluczowego elementu układanki.

OBSERWOWALNOŚĆ

Oprogramowanie OpenTelemetry wyrównuje pole do zbierania, przetwarzania i przesyłania danych telemetrycznych z bogatym kontekstem. Robi to jednolicie w popularnych językach i stosach systemowych. Koncentruje to wartość dostawców obserwowalności, takich jak TelemetryHub, na tym, jakie spostrzeżenia i wartość można uzyskać z tych nowo ujednoliconych danych. Jest to punkt zwrotny w krajobrazie monitorowania i obserwowalności, a najbliższe lata zapowiadają się niezwykle interesująco.

Przy TelemetryHub , budujemy nową platformę obserwowalności opartą na OpenTelemetry. Koncentrujemy się na dostarczaniu praktycznych informacji, które szybko ujawniają problemy, dając programistom pewność, że rozwiążą problemy z wydajnością w coraz bardziej złożonych aplikacjach i infrastrukturze.

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