Omówienie usługi OpenTelemetry

Firma Microsoft z przyjemnością przyjmuje platformę OpenTelemetry jako przyszłość instrumentacji telemetrii. Nasi klienci poprosili Cię o instrumentację neutralną od dostawcy i cieszymy się, że współpracujemy ze społecznością OpenTelemetry w celu utworzenia spójnych interfejsów API/zestawów SDK w różnych językach.

Firma Microsoft współpracowała z uczestnikami projektu z dwóch wcześniej popularnych projektów telemetrycznych typu open source, OpenCensus i OpenTracing, aby pomóc w utworzeniu pojedynczego projektu — OpenTelemetry. Usługa OpenTelemetry obejmuje współtworzenie wszystkich głównych dostawców usług w chmurze i zarządzania wydajnością aplikacji (APM) i mieszka w ramach natywnej struktury przetwarzania w chmurze (CNCF), której członkiem jest firma Microsoft Platinum.

Pojęcia

Dane telemetryczne zebrane w celu obserwowania aplikacji można podzielić na trzy typy lub "filary":

  1. Śledzenie rozproszone
  2. Metryki
  3. Dzienniki

Początkowo społeczność OpenTelemetry przyjęła śledzenie rozproszone. Metryki i dzienniki są nadal w toku. Kompletna historia wglądu obejmuje wszystkie trzy filary, ale obecnie nasze oferty w wersji zapoznawczej eksportera opartego na technologii OpenTelemetry usługi Azure Monitor dla platformy .NET, Python i języka JavaScriptonlyobejmują śledzenie rozproszone.

Istnieje kilka źródeł, które szczegółowo wyjaśniają trzy filary, w tym witrynę społeczności OpenTelemetry, Specyfikacje OpenTelemetry i Możliwości obserwacji systemów rozproszonych przez Cindy Sridharan.

W poniższych sekcjach omówimy niektóre podstawowe informacje dotyczące kolekcji danych telemetrycznych.

Instrumentowanie aplikacji

Na poziomie podstawowym "instrumentacja" polega po prostu na umożliwieniu aplikacji przechwytywania danych telemetrycznych.

Istnieją dwie metody instrumentowania aplikacji:

  1. Instrumentacja ręczna
  2. Instrumentacja automatyczna (instrumentacja automatyczna)

Instrumentacja ręczna jest kodowaniem względem interfejsu API OpenTelemetry. W kontekście użytkownika końcowego zazwyczaj odnosi się to do instalowania zestawu SDK specyficznego dla języka w aplikacji. Pakiety instrumentacji ręcznej składają się z naszych ofert w wersji zapoznawczej eksportera opartego na technologii OpenTelemetry usługi Azure Monitor dla platform .NET, Python i JavaScript.

Ważne

"Ręczne" nie oznacza, że będziesz musiał napisać złożony kod w celu zdefiniowania zakresów dla śladów rozproszonych (choć pozostaje to opcja). Rozbudowany i rosnący zestaw bibliotek instrumentacji obsługiwanych przez współautorów OpenTelemetry umożliwia łatwe przechwytywanie sygnałów telemetrycznych w typowych strukturach i bibliotekach. Podzbiór bibliotek instrumentacji OpenTelemetry będzie obsługiwany przez usługę Azure Monitor, informujący o opiniach klientów. Ponadto pracujemy nad instrumentem najpopularniejszych zestawów SDK usług platformy Azure przy użyciu biblioteki OpenTelemetry.

Z drugiej strony automatyczna instrumentacja umożliwia zbieranie danych telemetrycznych za pomocą konfiguracji bez dotykania kodu aplikacji. Chociaż jest to wygodniejsze, jest ono zwykle mniej konfigurowalne i nie jest dostępne we wszystkich językach. Oferta automatycznego instrumentacji oparta na technologii OpenTelemetry w usłudze Azure Monitor składa się z oferty ogólnodostępnej opartej na technologii OpenTelemetry opartej na technologii OpenTelemetry w usłudze Azure Monitor i nadal inwestujemy w nią poinformowane przez opinie klientów. Społeczność platformy OpenTelemetry eksperymentuje również z automatycznym instrumentacją w języku C# i Python, ale usługa Azure Monitor koncentruje się na tworzeniu prostego i skutecznego scenariusza instrumentacji ręcznej w najbliższej perspektywie.

Wysyłanie danych telemetrycznych

Istnieją również dwa sposoby wysyłania danych do usługi Azure Monitor (lub dowolnego dostawcy).

  1. Eksporter bezpośredni
  2. Za pośrednictwem agenta

Bezpośredni eksporter wysyła dane telemetryczne w procesie (z kodu aplikacji) bezpośrednio do punktu końcowego pozyskiwania usługi Azure Monitor. Główną zaletą tego podejścia jest prostota dołączania.

Wszystkie obecnie obsługiwane oferty oparte na usłudze OpenTelemetry w usłudze Azure Monitor korzystają z bezpośredniego eksportera.

Alternatywnie wysyłanie danych telemetrycznych za pośrednictwem agenta zapewni ścieżkę dla dowolnego języka obsługiwanego przez usługę OpenTelemetry do wysyłania do usługi Azure Monitor za pośrednictwem funkcji OTLP. Odbieranie funkcji OTLP umożliwi klientom obserwowanie aplikacji napisanych w językach poza naszymi obsługiwanymi językami.

Uwaga

Niektórzy klienci zaczęli używać programu OpenTelemetry-Collector jako alternatywy dla agenta, mimo że firma Microsoft oficjalnie nie obsługuje jeszcze podejścia "Za pośrednictwem agenta" do monitorowania aplikacji. W międzyczasie społeczność open source przyczyniła się do OpenTelemetry-Collector eksportera usługi Azure Monitor, którego niektórzy klienci używają do wysyłania danych do usługi Azure Monitor Application Szczegółowe informacje.

Terminologia

Zobacz słownik specyfikacji OpenTelemetry.

Niektóre starsze terminy w Szczegółowe informacje aplikacji są mylące, biorąc pod uwagę zbieżność branż na platformie OpenTelemetry. W poniższej tabeli przedstawiono te różnice. Ostatecznie warunki Szczegółowe informacje aplikacji zostaną zastąpione terminami OpenTelemetry.

Application Insights OpenTelemetry
Automatyczne moduły zbierające Biblioteki instrumentacji
Kanał Eksporter
Bezkodowy/oparty na agencie Instrumentacja automatyczna
Ślady Dzienniki

Następny krok

Poniższe strony zawierają wskazówki dotyczące języka po języku umożliwiające włączanie i konfigurowanie ofert opartych na protokole OpenTelemetry firmy Microsoft. Co ważne, udostępniamy dostępne funkcje i ograniczenia każdej oferty, aby określić, czy usługa OpenTelemetry jest odpowiednia dla twojego projektu.