• Czas czytania ~6 min
  • 10.04.2023

OpenTelemetry to wolna inicjatywa oprogramowania typu open source, której celem jest dostarczenie programistom środków do tworzenia systemów rozproszonych.

OpenTelemetry został opracowany przez inżynierów z Google, a programiści mają możliwość wykorzystania go do stworzenia standardowej podstawy do budowy systemów rozproszonych.

Celem jest umożliwienie programistom jednokrotnego napisania kodu, a następnie wdrożenia go w dowolnie wybranej lokalizacji. Nie ma potrzeby zajmować się różnymi systemami operacyjnymi i językami.

Bieżący stanOpenTelemetry OpenTelemetry

działa kolektywnie z oddzielnymi grupami koncentrującymi się na różnych aspektach telemetrii. Każda grupa koncentruje się na innym aspekcie: śledzeniu rozproszonym, rejestrowaniu, metrykach lub klientach specyficznych dla języka programowania.

Każdy z nich jest niezależny, ale ma pewne standardowe cechy. W rezultacie kadencje wydania są specyficzne dla grupy. Różne części OpenTelemetries mogą znajdować się na różnych etapach cyklu dojrzałości.

  • Robocze komponenty nie zostały jeszcze dodane do specyfikacji. Wciąż są w fazie planowania.
  • Komponenty eksperymentalne zostały wydane, ale są dostępne tylko do testów beta.
  • Stabilne komponenty są kompatybilne wstecz i objęte długoterminowym wsparciem.
  • Przestarzałe komponenty mogą zostać usunięte w przyszłości, chociaż są stabilne.

Obecna sytuacja w zakresie śledzenia bagażu, metryk i identyfikowalności jest stabilna. Jednak obecnie znajduje się on w fazie wstępnej procesu logowania. Ponadto istnieją strategie mające na celu poprawę zarówno jakości, jak i dostępności instrumentów.

Definicja OpenTelemetry została zaktualizowana do wersji 1.0 w kwietniu 2020 r., W tym czasie zespół rozpoczął również prace nad procesem dodawania komunikatów dziennika.

W maju 2019 r. nie było planów wdrożenia żadnych dalszych rodzajów telemetrii.

Pojęcia

dotyczące instrumentacji OpenTelemetry to nowe podejście do aplikacji instrumentacji. Opiera się na prostym pomyśle: zamiast pisać kod, który działa w aplikacji, piszesz kod, który działa poza aplikacją i raportuje informacje o tym, co widzi w środku.

Możesz użyć dowolnego języka programowania lub frameworka dla swojego projektu. Modyfikowanie istniejącego kodu jest niepotrzebne – to przyszłość instrumentacji.

Głębokie i szerokie

Masz dostęp do szerokiej gamy materiałów podczas korzystania z OpenTelemetry.

Ponieważ jest to open source, możesz skorzystać z pracy ponad 100 000 współpracowników.

Ulepszona ochrona, zwiększona zdolność adaptacji i wszechobecność to cechy charakterystyczne tego systemu - jest to jedna z obietnic OpenTelemetry.

Interoperacyjność

Ponadto uzyskujesz pełną widoczność we wszystkich swoich systemach. OpenTelemetry jest przeznaczony do pracy z szeroką gamą języków programowania, struktur i formatów

bibliotek. Dzięki standardowemu oprzyrządowaniu będziesz mieć możliwość niezawodnego pozbycia się martwych punktów i silosów danych w swojej obserwowalności.

Elastyczność

OpenTelemetry nie jest powiązany z żadnym dostawcą. Nie wymaga specjalnego stosu technologii. Nie ma zależności od systemu operacyjnego. Jest całkowicie niezależny od podstawowej infrastruktury. I pozwala wybrać technologie, których chcesz użyć. Oznacza to, że masz pełną elastyczność w zakresie obserwowalności zaplecza.

Dzięki

OpenTelemetry nie musisz się martwić o zmiany w miarę pojawiania się nowych technologii. Instrumentacja będzie nadal działać, nawet jeśli zmieni się podstawowa platforma.

Wygoda

Wreszcie, OpenTelemetry ułatwia rozpoczęcie pracy. Możesz od razu rozpocząć zbieranie danych telemetrycznych. Nie musisz czekać, aż tradycyjne narzędzie APM doda obsługę. Wystarczy pobrać bibliotekę klienta, podłączyć niektóre opcje konfiguracji i rozpocząć wysyłanie danych telemetrycznych. W przeciwieństwie do tradycyjnego APM, narzędzia obsługiwane przez OpenTelemetry mogą zapewnić monitorowanie aplikacji za pomocą dzienników i metryk w jednym miejscu.

Oprzyrządowanie

automatyczne a ręczne W programie OpenTelemetry dostępna jest opcja zarówno oprzyrządowania automatycznego, jak i ręcznego.

Oprzyrządowanie automatyczne Oprzyrządowanie

OpenTelemetry to narzędzie, za pomocą którego można automatycznie generować dane telemetryczne z aplikacji. Wygenerowane dane telemetryczne zostaną następnie wysłane do serwera OpenTelemetry w celu przechowywania i dalszej analizy.

Dzięki temu serwer OpenTelemetry zawsze monitoruje aplikację. Ponadto zebrane dane telemetryczne są przechowywane w bazie danych OpenTelemetry.

Oprzyrządowanie

ręczne Narzędzie Instrumentacja ręczna OpenTelemetry to narzędzie wiersza polecenia, którego deweloperzy mogą używać do ręcznego generowania danych telemetrycznych z aplikacji. Deweloperzy mogą używać tego narzędzia do generowania danych telemetrycznych, gdy chcą monitorować swoje aplikacje. Mogą również używać tego narzędzia do wysyłania wygenerowanych danych telemetrycznych do serwera

OpenTelemetry. Podobieństwa i kluczowe różnice

Po pierwsze, narzędzia te zapewniają podobne funkcje. Na przykład oba narzędzia mogą zbierać różne typy danych telemetrycznych, takie jak ślady, liczniki, mierniki i histogramy. Ponadto oba narzędzia mogą eksportować te dane do różnych formatów, takich jak JSON, CSV, YAML itp.

Jednak sposób, w jaki obaj wykonują swoje zadania, jest różnicą między tymi dwoma narzędziami. Na przykład automatyczne instrumentowanie OpenTelemetry używa wstępnie zdefiniowanych reguł do analizowania kodu źródłowego i określania, czy program wymaga instrumentacji. Jeśli tak, rozpocznie się proces instrumentacji.

Z drugiej strony ręczne instrumentowanie OpenTelemetry wymaga pisania niestandardowych skryptów lub programów w celu utworzenia własnych reguł instrumentacji. Następnie aparat oprzyrządowania wykonuje te reguły w celu wygenerowania danych telemetrycznych.

Którego powinienem użyć?

That’s up to you. Oprzyrządowanie automatyczne Oprzyrządowanie is undoubtedly easier to use and leaves little room for error. However, it means that you cannot control precisely what gets instrumented. It may cause problems if you need to know exactly where your telemetry data comes from. Also, since the automated instrumentation relies heavily on static analysis, it may miss out on certain dynamic aspects of your application.

Oprzyrządowanie provides more control but takes time to set up. You must first understand the instrumentation requirements of your application before writing any instrumentation rules. Then, once you have written those rules, you must run them against your codebase using the manual instrumentation tool. Next, you must ensure that all the required instrumentation rules exist in your codebase. Finally, you must verify that the instrumentation works correctly.

To trudne zadanie, zależne od tego, czego oczekujesz od instrumentacji. Wybór oprzyrządowania może również zależeć od zasobów czasu i umiejętności. Brakuje Ci czasu lub umiejętności? Automatyczna jest odpowiedzią. Potrzebujesz bardziej spersonalizowanego rozwiązania? Podręcznik będzie drogą naprzód.

Obsługiwane struktury i języki

Zestaw SDK OpenTelemetry obsługuje 11 języków programowania: Java, Go, Python, C #, Ruby, NodeJS, PHP, Swift, Rust, Haskell, i Erlang. Każdy z nich ma swój własny interfejs API.

Zestawy SDK OpenTelemetry umożliwiają generowanie danych telemetrycznych za pomocą aparatu instrumentacji. Pozwalają również na integrację OpenTelemetry z istniejącymi systemami.

Interfejs API umożliwia definiowanie i dodawanie nowych reguł instrumentacji do aparatu instrumentacji. Umożliwia również pobieranie najnowszej wersji reguł instrumentacji za pośrednictwem żądań HTTP.

Kolektor OpenTelemetry odbiera, przetwarza i eksportuje dane telemetryczne do różnych miejsc docelowych, a następnie używa ich moduł zbierający OpenTelemetry. Wreszcie, protokół OTLP służy do wysyłania danych telemetrycznych.

Najlepsze praktyki

Po podjęciu decyzji o korzystaniu z OpenTelemetry należy postępować zgodnie z kilkoma najlepszymi praktykami, aby w pełni wykorzystać wrażenia użytkownika. Oto trzy wskazówki:

Użyj odpowiednich wersji

Oprócz używania poprawnego zestawu SDK i interfejsu API dla języka programowania należy użyć odpowiedniego zestawu SDK dla swojego systemu operacyjnego. Istnieją zestawy SDK dla systemów Windows, Linux, macOS, Android, iOS i Raspberry Pi. Upewnij się, że używasz poprawnych i najnowszych wersji.

Używanie atrybutów semantycznych Atrybutów

semantycznych można używać do nadawania znaczenia danym zbieranym przez aplikację. Te atrybuty są dołączane do danych telemetrycznych zbieranych przez zestaw SDK i ułatwiają zrozumienie, co dzieje się w aplikacji.

Skoncentruj się na poziomach usług Podczas zbierania danych telemetrycznych skup się na poziomach

usług, a nie na poszczególnych zdarzeniach. Na przykład nie tylko zapisuj komunikat o błędzie podczas śledzenia zdarzenia błędu. Zamiast tego należy śledzić kontekst błędu i jego wpływ na użytkownika. Jeśli to możliwe, spróbuj zebrać te informacje na poziomie żądania.

Wniosek

: Zaczęliśmy od zbadania, czym jest OpenTelemetry, następnie przystąpiliśmy do określenia jego stanu, a na koniec przeszliśmy do badania jego oprzyrządowania. Następnie omówiliśmy kilka zalecanych procedur.

Jeśli szukasz przyszłościowego zaawansowanego narzędzia do monitorowania, zalecamy wypróbowanie TelemetryHub, które jest obsługiwane przez OpenTelemetry. Z drugiej strony, jeśli chcesz monitorować swoje systemy, ale nie wiesz, od czego zacząć, Scout APM jest tworzony przez programistów dla programistów.

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