Was bedeutet Einblick?

Abgeschlossen

Bevor Sie in den Code eintauchen, lassen Sie uns einen Schritt zurück gehen und über Einblicke sprechen. Sie müssen über Tools verfügen, die Ihnen helfen, den internen Zustand eines Systems basierend auf den extern sichtbaren Informationen zu verstehen.

Gründe für die Implementierung von Einblicken?

Es gibt mehrere Gründe, warum Einblicke ein wichtiger Aspekt bei der Entwicklung und Verbesserung von cloudnativen Anwendungen sind:

  • Verstehen des Systemverhaltens: Einblicke bieten Erkenntnisse über die Leistung Ihrer Anwendung und wo Engpässe oder Fehler auftreten.
  • Debuggen und Problembehandlung: Wenn Probleme auftreten, können Tools für Einblicke detaillierte Informationen darüber liefern, was zum Zeitpunkt des Problems im System passierte.
  • Fortlaufende Verbesserung: Einblicke dienen nicht nur zum Identifizieren und Beheben von Problemen – sie werden auch zur kontinuierlichen Verbesserung verwendet. Durch die Überwachung der Systemleistung im Zeitverlauf können Sie Möglichkeiten identifizieren, Ihren Code zu optimieren, die Systemleistung zu verbessern und die Erfahrung für Ihre Benutzer quantitativ zu verbessern.
  • Proaktive Problemerkennung: Mit den richtigen Tools für Einblicke können Sie häufig Probleme erkennen, noch bevor Ihre Benutzer sie sehen.

Die Implementierung von Einblicken in cloudnative Anwendungen ist nicht nur eine bewährte Methode, es ist eine Notwendigkeit, um Ihre Anwendungen aufrechtzuerhalten, zu optimieren und kontinuierlich zu verbessern. Es ermöglicht Entwicklern, zuverlässige, leistungsfähige Anwendungen bereitzustellen und die erforderlichen Erkenntnisse zu liefern, um fundierte Entscheidungen zu treffen.

Die drei Säulen der Einblicke

Es gibt drei Hauptsäulen für Einblicke:

  • Protokolle: Protokolle bieten detaillierte Datensätze von Ereignissen, die in einer Anwendung oder einem System auftreten. In Ihrer App können Sie die Microsoft.Extensions.Logging-Infrastruktur zum Protokollieren von Ereignissen verwenden.
  • Metriken: Metriken beziehen sich auf numerische Messungen und Zähler, die Einblicke in die Leistung und Integrität eines Systems bieten. Beispiele hierfür sind Anforderungsraten, Antwortzeiten, die CPU-Nutzung bzw. der Arbeitsspeicherverbrauch sowie Fehlerraten. In Ihrer App verfügen Sie möglicherweise über bestimmte Messungen, die Sie nachverfolgen müssen.
  • Verteilte Ablaufverfolgung: Dieser Prozess umfasst die Ablaufverfolgung für eine Anforderung, wenn sie über alle Microservices in Ihrer cloudnativen App verteilt wird. Jeder Dienst protokolliert Ablaufverfolgungsdaten wie Anforderungs-IDs, mit denen Sie Ereignisse über Dienste hinweg korrelieren können. Die verteilte Ablaufverfolgung ist auch hilfreich beim Debuggen von Leistungsproblemen und Fehlern in komplexen Systemen.

Gemeinsam bieten diese drei Säulen umfassende Einblicke in ein System.

Quellen von Daten für die Telemetrie

In der cloudnativen App Ihres Unternehmens gibt es mehrere Quellen für Telemetriedaten, die Sie sammeln könnten:

  • Anwendungsprotokolle: Anwendungen generieren Protokolle, die detaillierte Informationen zu ihrem Vorgang und zu Fehlern bereitstellen, wenn sie auftreten. Die Protokollierung ist eine umfangreiche Quelle von Telemetriedaten.
  • Datenbanken: Datenbanken können Telemetriedaten zu den Abfragen bereitstellen, die verarbeitet werden, Ausführungszeiten und alle aufgetretenen Fehler.
  • HTTP-Anforderungen und -Antworten: Die HTTP-Anforderungen und -Antworten zwischen Ihren Microservices bieten umfangreiche und wertvolle Telemetriedaten. Zu diesen Daten gehören die Anforderungs- und Antwortheader, Textkörperinhalte, Statuscodes und Zeitangaben.
  • Clientseitige Leistungsdaten: In cloudnativen Apps mit einem Front-End können Sie die clientseitigen Leistungsdaten sammeln. Diese Daten können Seitentreffer, Ladezeiten und Interaktionszeiten mit der Benutzeroberfläche umfassen.
  • Infrastrukturmetriken: Wenn Ihre Anwendung in einer Cloudumgebung gehostet wird, können Sie Infrastrukturmetriken wie CPU-Verbrauch, Arbeitsspeicherverbrauch, Netzwerkdatenverkehr und E/A-Vorgänge des Datenträgers sammeln.

Durch das Sammeln und Analysieren dieser Telemetriedaten können Sie wertvolle Erkenntnisse in die Leistung und die Integrität Ihrer Anwendung gewinnen.

Implementieren von Funktionen für Einblicke

Führen Sie die folgenden Schritte aus, um Ihrer cloudnativen Anwendung Funktionen für Einblicke hinzuzufügen:

  • Fügen Sie die Protokollierung hinzu.
  • Aktivieren Sie Metriken, und definieren Sie benutzerdefinierte Metriken, die aufgezeichnet werden sollen.
  • Aktivieren Sie die verteilte Ablaufverfolgung mit OpenTelemetry und Zipkin.
  • Instrumentieren Sie Ihre App erneut mit OpenTelemetry, und fügen Sie Ihrem Code Telemetrie hinzu.
  • Analysieren Sie die Telemetriedaten mit Prometheus, Grafana oder Application Insights.

Einführung in OpenTelemetry

Wie kann OpenTelemetry Ihrer App Einblicke hinzufügen, und warum gibt es eine so tiefe Unterstützung dafür in .NET? OpenTelemetry ist ein Open-Source-Framework für Einblicke. Es bietet eine standardmäßige, herstellerunabhängige Möglichkeit zum Generieren von Telemetriedaten.

OpenTelemetry standardisiert die Art und Weise, wie Telemetriedaten gesammelt und an Back-End-Plattformen übertragen werden. Es überbrückt Sichtbarkeitslücken, indem ein gemeinsames Format der Instrumentierung für alle Microservices bereitgestellt wird. Sie müssen Code nicht neu instrumentieren oder verschiedene proprietäre Agents installieren, wenn sich eine Back-End-Plattform ändert.

Da es sich um einen offenen Standard handelt, werden viele andere Tools außerhalb von .NET unterstützt. OpenTelemetry ist für die Verwendung von Erweiterungen konfiguriert, mit denen Exporter Telemetriedaten für alle verschiedenen Tools erstellen können. Dies bedeutet, dass Sie dieselben Tools verwenden können, um Microservices zu überwachen, unabhängig von der Sprache, in der sie geschrieben sind.

OpenTelemetry hilft Ihnen, alle drei Säulen der Einblicke zu sammeln und zu überwachen: Protokolle, Metriken und Ablaufverfolgungen. In den folgenden Lerneinheiten erfahren Sie, wie Sie diese Schritte ausführen.