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:
- Zmniejsza nakład pracy przy włączaniu
- Obsługiwane przez firmę Microsoft
- Udostępnia funkcje specyficzne dla platformy Azure, takie jak:
- Próbkowanie zgodne z klasycznymi zestawami SDK usługi Application Insights
- Uwierzytelnianie Microsoft Entra
- Magazyn w trybie offline i automatyczne ponawianie prób
- Statystykabeat
- Metryki standardowe usługi Application Insights
- Wykrywanie metadanych zasobów w celu automatycznego wypełniania nazwy roli chmury i wystąpienia roli chmury w różnych środowiskach platformy Azure
- Metryki na żywo
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
- ✅ Ta funkcja jest dostępna dla wszystkich klientów z formalnym wsparciem.
- ⚠✔ Ta funkcja jest dostępna jako publiczna wersja zapoznawcza. Zobacz Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure.
- ❌ Ta funkcja jest niedostępna lub nie ma zastosowania.
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ę:
- Wypełnij ankietę opinii klientów społeczności OpenTelemetry.
- Poinformuj firmę Microsoft o sobie, dołączając do społeczności wczesnych użytkowników openTelemetry.
- Skontaktuj się z innymi użytkownikami usługi Azure Monitor w społeczności technicznej firmy Microsoft.
- Wyślij żądanie funkcji na forum opinii platformy Azure.