Udostępnij za pośrednictwem


Pomoc, pomoc, pomoc techniczna i opinie dotyczące platformy OpenTelemetry

Ten artykuł zawiera opcje pomocy, obsługi i opinii dotyczące biblioteki OpenTelemetry w usłudze Azure Monitor Application Insights dla platformy .NET, Java, Node.js i aplikacji języka Python.

Często zadawane pytania

Co to jest OpenTelemetry?

Jest to nowy standard open source umożliwiający obserwowanie. Dowiedz się więcej na stronie OpenTelemetry.

Dlaczego usługa Microsoft Azure Monitor inwestuje w rozwiązanie OpenTelemetry?

Firma Microsoft inwestuje w platformę OpenTelemetry z następujących powodów:

  • Jest neutralny dla dostawcy i zapewnia spójne interfejsy API/zestawy SDK w różnych językach.
  • Z biegiem czasu uważamy, że platforma OpenTelemetry umożliwi klientom usługi Azure Monitor obserwowanie aplikacji napisanych w językach poza obsługiwanymi językami.
  • Rozszerza typy danych, które można zbierać za pomocą bogatego zestawu bibliotek instrumentacji.
  • Zestawy SDK (Software Development Kit) openTelemetry są zwykle bardziej wydajne na dużą skalę niż ich poprzednicy, zestawy SDK usługi Application Insights.
  • OpenTelemetry jest zgodna ze strategią firmy Microsoft w celu przyjęcia rozwiązania open source.

Jaki jest stan funkcji OpenTelemetry?

Zobacz Stan openTelemetry.

Co to jest dystrybucja opentelemetrii usługi Azure Monitor?

Można go traktować jako cienką otokę, która łączy wszystkie składniki OpenTelemetry w celu uzyskania najwyższej klasy środowiska na platformie Azure. Ta otoka jest również nazywana dystrybucją w usłudze OpenTelemetry.

Dlaczego należy używać dystrybucji OpenTelemetry usługi Azure Monitor?

Korzystanie z dystrybucji OpenTelemetry usługi Azure Monitor za pośrednictwem natywnej biblioteki OpenTelemetry z poziomu społeczności ma kilka zalet:

W duchu OpenTelemetry zaprojektowaliśmy dystrybucję tak, aby była otwarta i rozszerzalna. Możesz na przykład dodać następujące elementy:

  • Eksporter Protokołu OTLP (OpenTelemetry Protocol) i wysyłany jednocześnie do drugiego miejsca docelowego
  • Inne biblioteki instrumentacji nieuwzględniane w dystrybucji

Ponieważ dystrybucja dystrybucji zapewnia dystrybucję OpenTelemetry, dystrybucja obsługuje wszystkie elementy obsługiwane przez bibliotekę OpenTelemetry. Na przykład można dodać więcej procesorów telemetrycznych, eksporterów lub bibliotek instrumentacji, jeśli usługa OpenTelemetry je obsługuje.

Uwaga

Dystrybucja ustawia próbkator na niestandardowy przykładowy, stały współczynnik dla usługi Application Insights. Można to zmienić na inny przykład, ale może to spowodować wyłączenie niektórych dołączonych możliwości dystrybucji. Aby uzyskać więcej informacji na temat obsługiwanego przykładnika, zobacz sekcję Włączanie próbkowania w temacie Konfigurowanie usługi Azure Monitor OpenTelemetry.

W przypadku języków bez obsługiwanego autonomicznego eksportera OpenTelemetry usługa Azure Monitor OpenTelemetry Distro jest jedynym obecnie obsługiwanym sposobem korzystania z biblioteki OpenTelemetry w usłudze Azure Monitor. W przypadku języków z obsługiwanym autonomicznym eksporterem OpenTelemetry możesz użyć dystrybucji OpenTelemetry usługi Azure Monitor lub odpowiedniego autonomicznego eksportera OpenTelemetry OpenTelemetry w zależności od scenariusza telemetrii. Aby uzyskać więcej informacji, zobacz Kiedy należy używać eksportera OpenTelemetry usługi Azure Monitor?.

Jak przetestować dystrybucję opentelemetrii usługi Azure Monitor?

Zapoznaj się z naszymi dokumentami dotyczącymi włączania dla platform .NET, Java, JavaScript (Node.js) i języka Python.

Czy należy używać interfejsu OpenTelemetry lub zestawu SDK usługi Application Insights?

Zalecamy korzystanie z dystrybucji OpenTelemetry, chyba że wymagana jest funkcja dostępna tylko z obsługą formalną w zestawie SDK usługi Application Insights.

Wdrażanie biblioteki OpenTelemetry teraz uniemożliwia przeprowadzenie migracji w późniejszym terminie.

Kiedy należy używać eksportera OpenTelemetry usługi Azure Monitor?

W przypadku ASP.NET Core, Java, Node.js i Python zalecamy użycie dystrybucji OpenTelemetry usługi Azure Monitor. Jest to jeden wiersz kodu, aby rozpocząć pracę.

W przypadku wszystkich innych scenariuszy platformy .NET, w tym klasycznych ASP.NET, aplikacji konsolowych, formularzy systemu Windows (WinForms) itp., zalecamy użycie eksportera OpenTelemetry platformy .NET usługi Azure Monitor: Azure.Monitor.OpenTelemetry.Exporter.

W przypadku bardziej złożonych scenariuszy telemetrii języka Python wymagających zaawansowanej konfiguracji zalecamy użycie eksportera OpenTelemetry usługi Azure Monitor w języku Python.

Jaki jest bieżący stan wersji funkcji w usłudze Azure Monitor OpenTelemetry Distro?

Na poniższym wykresie przedstawiono obsługę funkcji OpenTelemetry dla każdego języka.

Funkcja .NET Node.js Python Java
Śledzenie rozproszone
Metryki niestandardowe
Metryki standardowe
Próbkowanie o stałej częstotliwości
Magazyn w trybie offline i automatyczne ponawianie prób
Raportowanie wyjątków
Zbieranie dzienników ⚠️
Zdarzenia niestandardowe ⚠️ ⚠️ ⚠️
Uwierzytelnianie Microsoft Entra
Metryki na żywo
Filtrowanie metryk na żywo
Wykrywanie kontekstu zasobów dla maszyn wirtualnych/zestawu skalowania maszyn wirtualnych i usługi App Service
Wykrywanie kontekstu zasobów dla usługi Azure Kubernetes Service (AKS) i funkcji
Zdarzenia testowania dostępności generowane przy użyciu interfejsu API śledzenia dostępności
Filtrowanie żądań, zależności, dzienników i wyjątków według anonimowego identyfikatora użytkownika i syntetycznego źródła
Filtrowanie zależności, dzienników i wyjątków według nazwy operacji
Próbkowanie adaptacyjne
Profiler platformy .NET ⚠️
Debuger migawek

Klawisz

Czy można używać funkcji OpenTelemetry dla przeglądarek internetowych?

Tak, ale nie zalecamy jej i platforma Azure nie obsługuje jej. Język JavaScript openTelemetry jest mocno zoptymalizowany pod kątem Node.js. Zamiast tego zalecamy używanie zestawu SDK języka JavaScript usługi Application Insights.

Kiedy można oczekiwać, że zestaw SDK OpenTelemetry będzie dostępny do użycia w przeglądarkach internetowych?

Internetowy zestaw SDK openTelemetry nie ma ustalonej osi czasu dostępności. Prawdopodobnie kilka lat od zestawu SDK przeglądarki jest realną alternatywą dla zestawu SDK języka JavaScript usługi Application Insights.

Czy mogę przetestować metrykę OpenTelemetry w przeglądarce internetowej dzisiaj?

Piaskownica internetowa OpenTelemetry to rozwidlenie przeznaczone do działania openTelemetry w przeglądarce. Nie można jeszcze wysyłać danych telemetrycznych do usługi Application Insights. Zestaw SDK nie definiuje ogólnych zdarzeń klienta.

Czy działa usługa Application Insights obok agentów konkurencji, takich jak AppDynamics, DataDog i NewRelic, jest obsługiwana?

Ta praktyka nie jest czymś, co planujemy przetestować ani obsługiwać , chociaż nasze dystrybucje umożliwiają eksportowanie do punktu końcowego OTLP wraz z usługą Azure Monitor jednocześnie.

Czy mogę używać funkcji w wersji zapoznawczej w środowiskach produkcyjnych?

Nie zalecamy tego. Zobacz Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Jaka jest różnica między instrumentacją ręczną i automatyczną?

Zobacz Omówienie usługi OpenTelemetry.

Czy mogę użyć modułu zbierającego OpenTelemetry?

Niektórzy klienci używają modułu zbierającego OpenTelemetry jako alternatywy dla agenta, mimo że firma Microsoft oficjalnie nie obsługuje podejścia opartego na agencie do monitorowania aplikacji. W międzyczasie społeczność typu open source przyczyniła się do eksportera usługi Azure Monitor modułu zbierającego openTelemetry, którego niektórzy klienci używają do wysyłania danych do usługi Azure Monitor Application Insights. Nie jest to obsługiwane przez firmę Microsoft.

Jaka jest różnica między usługami OpenCensus i OpenTelemetry?

OpenCensus jest prekursorem OpenTelemetry. Firma Microsoft pomogła połączyć rozwiązania OpenTracing i OpenCensus w celu utworzenia biblioteki OpenTelemetry— jednego standardu obserwacji dla świata. Bieżący zestaw SDK języka Python zalecany w środowisku produkcyjnym dla usługi Azure Monitor jest oparty na usłudze OpenCensus. Firma Microsoft zobowiązuje się do tworzenia usługi Azure Monitor na podstawie biblioteki OpenTelemetry.

W Grafana, dlaczego widzę Status: 500. Can't visualize trace events using the trace visualizer?

Możesz spróbować zwizualizować nieprzetworzone dzienniki tekstowe, a nie ślady OpenTelemetry.

W usłudze Application Insights tabela "Traces" przechowuje nieprzetworzone dzienniki tekstowe do celów diagnostycznych. Pomagają one identyfikować i korelować ślady skojarzone z żądaniami użytkowników, innymi zdarzeniami i raportami wyjątków. Jednak tabela "Traces" nie przyczynia się bezpośrednio do kompleksowego widoku transakcji (wykres kaskadowy) w narzędziach wizualizacji, takich jak Grafana.

Wraz z rosnącym wdrożeniem rozwiązań natywnych dla chmury istnieje ewolucja kolekcji i terminologii telemetrii. OpenTelemetry stał się standardem zbierania i instrumentowania danych telemetrycznych. W tym kontekście termin "Traces" przyjął nowe znaczenie. Zamiast nieprzetworzonych dzienników funkcja "Traces" w usłudze OpenTelemetry odwołuje się do bogatszej, ustrukturyzowanej formy telemetrii obejmującej zakresy, które reprezentują poszczególne jednostki pracy. Te zakresy mają kluczowe znaczenie dla konstruowania szczegółowych widoków transakcji, co umożliwia lepsze monitorowanie i diagnostykę aplikacji natywnych dla chmury.

Rozwiązywanie problemów

Krok 1. Włączanie rejestrowania diagnostycznego

Eksporter usługi Azure Monitor używa usługi EventSource do rejestrowania wewnętrznego. Dzienniki eksportera są dostępne dla dowolnego obiektu EventListener, decydując się na źródło o nazwie OpenTelemetry-AzureMonitor-Exporter. Aby uzyskać instrukcje rozwiązywania problemów, zobacz Rozwiązywanie problemów z funkcją OpenTelemetry w witrynie GitHub.

Krok 2. Testowanie łączności między hostem aplikacji a usługą pozyskiwania

Zestawy SDK (Software Development Kit) usługi Application Insights i agenci wysyłają dane telemetryczne, aby uzyskać pozyskane jako wywołania REST w naszych punktach końcowych pozyskiwania. Aby przetestować łączność z serwera internetowego lub komputera hosta aplikacji do punktów końcowych usługi pozyskiwania, użyj poleceń cURL lub nieprzetworzonych żądań REST z programu PowerShell. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z brakującą telemetrią aplikacji w usłudze Azure Monitor Application Insights.

Znane problemy

Znane są następujące elementy dotyczące eksporterów OpenTelemetry usługi Azure Monitor:

  • Brak nazwy operacji w telemetrii zależności. Brakująca nazwa operacji powoduje błędy i niekorzystnie wpływa na środowisko karty wydajności.

  • W telemetrii żądania i zależności brakuje modelu urządzenia. Brakujący model urządzenia niekorzystnie wpływa na analizę kohorty urządzeń.

Pomoc techniczna

Wybierz kartę dla wybranego języka, aby odnaleźć opcje pomocy technicznej.

  • W przypadku problemów z pomoc techniczna platformy Azure otwórz bilet pomoc techniczna platformy Azure.
  • W przypadku problemów z usługą OpenTelemetry skontaktuj się bezpośrednio ze społecznością platformy .NET OpenTelemetry.
  • Aby uzyskać listę otwartych problemów związanych z eksporterem usługi Azure Monitor, zobacz stronę Problemów z usługą GitHub.

Opinie dotyczące usługi OpenTelemetry

Aby przekazać opinię: