Freigeben über


Hilfe, Support und Feedback zu OpenTelemetry

Dieser Artikel enthält Hilfe-, Support- und Feedbackoptionen für OpenTelemetry in Azure Monitor Application Insights für .NET-, Java-, Node.js- und Python-Apps.

Häufig gestellte Fragen

Was ist OpenTelemetry?

Es handelt sich um einen neuen Open-Source-Standard für Einblicke. Weitere Informationen finden Sie unter OpenTelemetry.

Warum investiert Microsoft Azure Monitor in OpenTelemetry?

Microsoft investiert aus folgenden Gründen in OpenTelemetry:

  • Es ist anbieterneutral und bietet konsistente APIs und SDKs für alle Sprachen.
  • Wir glauben, dass OpenTelemetry im Laufe der Zeit Azure Monitor-Kunden ermöglichen wird, auch Anwendungen zu überwachen, die in anderen als den von uns unterstützten Sprachen geschrieben wurden.
  • Es erweitert die Datentypen, die Sie über eine Vielzahl von Instrumentierungsbibliotheken erfassen können.
  • OpenTelemetry-SDKs sind tendenziell im großen Stil leistungsstärker als ihre Vorgänger, die Application Insights-SDKs.
  • OpenTelemetry entspricht der Microsoft-Strategie zur Förderung von Open Source.

Wie ist der Status von OpenTelemetry?

Siehe OpenTelemetry Status.

Was ist die OpenTelemetry-Distribution von Azure Monitor?

Sie können sie sich als einfachen Wrapper vorstellen, der alle OpenTelemetry-Komponenten für eine erstklassige Erfahrung in Azure bündelt. Dieser Wrapper wird auch als Verteilung in OpenTelemetry bezeichnet.

Warum sollte ich die OpenTelemetry-Distribution von Azure Monitor verwenden?

Die Verwendung der OpenTelemetry-Distribution von Azure Monitor hat gegenüber der nativen OpenTelemetry aus der Community mehrere Vorteile:

Im Sinne von OpenTelemetry haben wir die Distribution so konzipiert, dass sie offen und erweiterbar ist. Sie können beispielsweise Folgendes tun:

  • Ein OpenTelemetry Protocol (OTLP)-Exporter und gleichzeitiges Senden an ein zweites Ziel
  • Andere Instrumentierungsbibliotheken, die nicht in der Distribution enthalten sind

Da die Distro eine OpenTelemetry-Verteilung bereitstellt, unterstützt die Distro alles, was von OpenTelemetry unterstützt wird. Sie können beispielsweise weitere Telemetrieprozessoren, Exporteure oder Instrumentierungsbibliotheken hinzufügen, wenn OpenTelemetry sie unterstützt.

Hinweis

Die Distro legt den Sampler auf einen benutzerdefinierten Sampler mit fester Rate für Application Insights fest. Sie können dies in einen anderen Sampler ändern, dies kann jedoch einige der enthaltenen Funktionen von Distro deaktivieren. Weitere Informationen zum unterstützten Sampler finden Sie im Abschnitt Aktivieren des Samplings von Konfigurieren von Azure Monitor OpenTelemetry.

Für Sprachen ohne einen unterstützten eigenständigen OpenTelemetry-Exporter ist der Azure Monitor OpenTelemetry Distro die einzige derzeit unterstützte Methode zur Verwendung von OpenTelemetry mit Azure Monitor. Für Sprachen mit einem unterstützten eigenständigen OpenTelemetry-Exporter haben Sie je nach Telemetrieszenario die Möglichkeit, entweder den Azure Monitor OpenTelemetry Distro oder den entsprechenden eigenständigen OpenTelemetry-Exporter zu verwenden. Weitere Informationen finden Sie unter Wann sollte ich den OpenTelemetry-Exporter von Azure Monitor verwenden?.

Wie kann ich die OpenTelemetry-Distribution von Azure Monitor testen?

Sehen Sie sich unsere Aktivierungsdokumentation für .NET, Java, JavaScript (Node.js) und Python an.

Sollte ich OpenTelemetry oder das Application Insights-SDK verwenden?

Wir empfehlen die Verwendung der OpenTelemetry-Distribution, es sei denn, Sie benötigen ein Feature, das nur mit formaler Unterstützung im Application Insights-SDK verfügbar ist.

Wenn OpenTelemetry jetzt eingeführt wird, wird verhindert, dass zu einem späteren Zeitpunkt migriert werden muss.

Wann sollte ich den OpenTelemetry-Exporter von Azure Monitor verwenden?

Für ASP.NET Core, Java, Node.js und Python empfehlen wir die Verwendung der Azure Monitor OpenTelemetry Distro. Es ist nur eine Codezeile, um loszulegen.

Für alle anderen .NET-Szenarien, einschließlich klassischem ASP.NET, Konsolenanwendungen, Windows Forms (WinForms) usw., empfehlen wir die Verwendung des .NET Azure Monitor OpenTelemetry-Exporters: Azure.Monitor.OpenTelemetry.Exporter.

Für komplexere Python-Telemetrieszenarien, die eine erweiterte Konfiguration erfordern, empfehlen wir die Verwendung des Python Azure Monitor OpenTelemetry-Exporters.

Wie lautet der aktuelle Releasestatus der Features in der OpenTelemetry-Distribution von Azure Monitor?

Im folgenden Diagramm ist die Unterstützung der OpenTelemetry-Funktion für jede Sprache aufgeschlüsselt.

Funktion .NET Node.js Python Java
Verteilte Ablaufverfolgung
Benutzerdefinierte Metriken
Standardmetriken
Stichprobenerstellung mit festem Prozentsatz
Offlinespeicher und automatische Wiederholungsversuche
Ausnahmeberichterstattung
Protokollerfassung ⚠️
Benutzerdefinierte Ereignisse ⚠️ ⚠️ ⚠️
Microsoft Entra-Authentifizierung
Livemetriken
Filtern von Livemetriken
Erkennen des Ressourcenkontexts für VM/VMSS und App Service
Erkennen des Ressourcenkontexts für Azure Kubernetes Service (AKS) und Funktionen
Verfügbarkeitstestereignisse, die mit der API zum Nachverfolgen der Verfügbarkeit (Track Availability-API) generiert werden
Filtern von Anforderungen, Abhängigkeiten, Protokollen und Ausnahmen nach anonymer Benutzer-ID und synthetischer Quelle
Filtern von Abhängigkeiten, Protokollen und Ausnahmen nach Vorgangsname
Adaptive Stichprobenerstellung
Profiler ⚠️
Momentaufnahmedebugger

Schlüssel

Kann OpenTelemetry für Webbrowser verwendet werden?

Ja, aber wir empfehlen es nicht, und Azure unterstützt es nicht. OpenTelemetry JavaScript ist in hohem Maße für Node.js optimiert. Stattdessen wird empfohlen, das Application Insights JavaScript SDK zu verwenden.

Wann können wir damit rechnen, dass das OpenTelemetry SDK für die Verwendung in Webbrowsern verfügbar sein wird?

Für das OpenTelemetry-Web-SDK gibt es keine festgelegte Verfügbarkeitszeitachse. Wir sind wahrscheinlich noch einige Jahre von einem Browser-SDK entfernt, das eine brauchbare Alternative zum Application Insights JavaScript-SDK wäre.

Kann ich OpenTelemetry heute in einem Webbrowser testen?

Die OpenTelemetry Web Sandbox ist ein Fork, mit dem OpenTelemetry in einem Browser funktioniert. Es ist aber noch nicht möglich, Telemetriedaten an Application Insights zu senden. Das SDK definiert keine allgemeinen Clientereignisse.

Wird die Ausführung von Application Insights zusammen mit Agents von Mitbewerbern wie AppDynamics, DataDog und NewRelic unterstützt?

Wir haben nicht vor, diese Praxis zu testen oder zu unterstützen, obwohl unsere Distributionen es Ihnen ermöglichen, gleichzeitig neben Azure Monitor einen OTLP-Endpunkt zu exportieren.

Kann ich in Produktionsumgebungen die Previewfunktionen verwenden?

Wir raten davon ab. Siehe Ergänzende Nutzungsbedingungen für Microsoft Azure-Vorschauversionen.

Was ist der Unterschied zwischen manueller und automatischer Instrumentierung?

Weitere Informationen finden Sie in der OpenTelemetry-Übersicht.

Kann ich den OpenTelemetry-Collector verwenden?

Einige Kunden verwenden den OpenTelemetry-Collector als Agent-Alternative, obwohl Microsoft einen Agent-basierenden Ansatz für die Anwendungsüberwachung noch nicht offiziell unterstützt. In der Zwischenzeit wurde von der Open-Source-Community ein Azure Monitor-Exporter für den OpenTelemetry-Collector bereitgestellt, der von einigen Kunden zum Senden von Daten an Azure Monitor Application Insights verwendet wird. Dies wird von Microsoft nicht unterstützt.

Worin besteht der Unterschied zwischen OpenCensus und OpenTelemetry?

OpenCensus ist der Vorgänger von OpenTelemetry. Mit der Hilfe von Microsoft entstand OpenTelemetry aus einer Zusammenführung von OpenTracing und OpenCensus als einzelner Einblickstandard für die ganze Welt. Das aktuelle für die Produktion empfohlene Python SDK für Azure Monitor basiert auf OpenCensus. Microsoft hat sich verpflichtet, Azure Monitor auf der Grundlage von OpenTelemetry zu entwickeln.

Warum sehe ich in Grafana Status: 500. Can't visualize trace events using the trace visualizer?

Sie könnten versuchen, unformatierte Textprotokolle anstelle von OpenTelemetry-Ablaufverfolgungen zu visualisieren.

In Application Insights speichert die Tabelle „Traces“ Rohtextprotokolle zu Diagnosezwecken. Sie helfen bei der Identifizierung und Korrelation von Traces im Zusammenhang mit Benutzeranforderungen, anderen Ereignissen und Ausnahmeberichten. Die Tabelle „Traces“ trägt jedoch nicht direkt zur End-to-End-Transaktionsansicht (Wasserfalldiagramm) in Visualisierungstools wie Grafana bei.

Mit der zunehmenden Einführung von Cloud-nativen Verfahren entwickelt sich auch die Telemetrieerfassung und -terminologie weiter. OpenTelemetry wurde zu einem Standard für die Erfassung und Instrumentierung von Telemetriedaten. In diesem Zusammenhang bekam der Begriff „Traces“ eine neue Bedeutung. Anstelle von Rohprotokollen beziehen sich „Traces“ in OpenTelemetry auf eine reichhaltigere, strukturierte Form der Telemetrie, die Spans enthält, die einzelne Arbeitseinheiten darstellen. Diese Spans sind entscheidend für die Erstellung von detaillierten Transaktionsansichten, die eine bessere Überwachung und Diagnose von Cloud-nativen Anwendungen ermöglichen.

Problembehandlung

Schritt 1: Aktivieren der Diagnoseprotokollierung

Azure Monitor Exporter verwendet EventSource für die interne Protokollierung. Die Exporterprotokolle sind für alle EventListener über die Quelle OpenTelemetry-AzureMonitor-Exporter verfügbar. Schritte zur Problembehandlung finden Sie unter OpenTelemetry Troubleshooting auf GitHub.

Schritt 2: Testen der Konnektivität zwischen Ihrem Anwendungshost und dem Erfassungsdienst

Application Insights-SDKs (Software Development Kits) und -Agents senden Telemetriedaten, die als REST-Aufrufe unserer Erfassungsendpunkte erfasst werden sollen. Verwenden Sie cURL-Befehle oder unformatierte REST-Anforderungen von PowerShell, um die Konnektivität von Ihrem Webserver- oder Anwendungshostcomputer mit den Endpunkten des Aufnahmediensts zu testen. Ausführliche Informationen finden Sie unter Problembehandlung bei fehlender Anwendungstelemetrie in Azure Monitor Application Insights.

Bekannte Probleme

Die folgenden Elemente sind bekannte Probleme für die OpenTelemetry-Exporter von Azure Monitor:

  • Der Vorgangsname fehlt in der Abhängigkeitstelemetrie. Der fehlende Name des Vorgangs verursacht Fehler und wirkt sich negativ auf die Leistung der Registerkartenerfahrung aus.

  • Das Gerätemodell fehlt bei der Anforderungs- und Abhängigkeitstelemetrie. Das fehlende Gerätemodell wirkt sich negativ auf die Analyse der Gerätekohorten aus.

Unterstützung

Wählen Sie eine Registerkarte für die Sprache Ihrer Wahl aus, um Supportoptionen zu ermitteln.

OpenTelemetry-Feedback

So können Sie Feedback geben