Ereignisanalyse und Visualisierung mit Application Insights

Application Insights gehört zu Azure Monitor und ist eine erweiterbare Plattform für die Überwachung und Diagnose von Anwendungen. Sie enthält ein leistungsfähiges Analyse- und Abfragetool, ein anpassbares Dashboard und Visualisierungen sowie weitere Optionen, z.B. automatisierte Warnungen. Die Integration von Application Insights in Service Fabric umfasst Toolumgebungen für Visual Studio und das Azure-Portal sowie spezifische Service Fabric-Metriken, sodass Sie eine umfassende, sofort einsatzbereite Protokollierung erhalten. Mit Application Insights werden zwar viele Protokolle automatisch für Sie erstellt und erfasst, es empfiehlt sich jedoch, Ihren Anwendungen eine weitergehende benutzerdefinierte Protokollierung hinzuzufügen, um eine umfassendere Diagnoseumgebung zu erstellen.

Dieser Artikel geht auf folgende allgemeine Fragen ein:

  • Wie kann ich mich über die Vorgänge in meiner Anwendung und in meinen Diensten informieren und Telemetriedaten sammeln?
  • Wie behebe ich Probleme mit meiner Anwendung (insbesondere Probleme bei der Kommunikation zwischen Diensten)?
  • Wie erhalte ich Metriken zur Leistung meiner Dienste wie Seitenladezeit, HTTP-Anforderungen und Ähnliches?

In diesem Artikel erfahren Sie, wie Sie in Application Insights Erkenntnisse gewinnen und Probleme behandeln. Informationen zum Einrichten und Konfigurieren von Application Insights mit Service Fabric finden Sie in diesem Tutorial.

Überwachen in Application Insights

Application Insights bietet bereits standardmäßig umfassende Service Fabric-Funktionen. Auf der Übersichtsseite stellt Application Insights wichtige Informationen zu Ihrem Dienst bereit (beispielsweise zur Antwortzeit und zur Anzahl verarbeiteter Anforderungen). Wenn Sie am oberen Rand auf die Suchschaltfläche klicken, wird eine Liste mit Anforderungen angezeigt, die kürzlich in Ihrer Anwendung ausgeführt wurden. Darüber hinaus werden hier ggf. nicht erfolgreiche Anforderungen angezeigt, und Sie können die aufgetretenen Fehler diagnostizieren.

Application Insights-Übersicht

Die Liste im rechten Bereich der vorherigen Abbildung enthält hauptsächlich zwei Arten von Einträgen: Anforderungen und Ereignisse. Anforderungen sind an die API der App gerichtete Aufrufe (in diesem Fall über HTTP-Anforderungen). Ereignisse sind benutzerdefinierte Ereignisse und fungieren als Telemetrie, die Sie an einer beliebigen Stelle in Ihrem Code hinzufügen können. Weitere Informationen zur Instrumentierung Ihrer Anwendungen finden Sie unter Application Insights-API für benutzerdefinierte Ereignisse und Metriken. Wenn Sie auf eine Anforderung klicken, werden wie in der folgenden Abbildung dargestellt weitere Details angezeigt. Sie umfassen unter anderem für Service Fabric spezifische Daten, die im Application Insights Service Fabric-NuGet-Paket erfasst werden. Diese Informationen können zur Problembehandlung und zur Ermittlung des Anwendungszustands herangezogen sowie in Application Insights durchsucht werden.

Screenshot, der weitere Details zeigt, einschließlich der für Service Fabric spezifischen Daten, die im NuGet-Paket „Application Insights“ von Service Fabric erfasst werden.

Application Insights bietet eine eigene Ansicht zum Abfragen sämtlicher eingehender Daten. Klicken Sie am oberen Rand der Übersichtsseite auf „Metrik-Explorer“, um zum Application Insights-Portal zu gelangen. Hier können Sie unter Verwendung der Kusto-Abfragesprache Abfragen für die zuvor erwähnten benutzerdefinierten Ereignisse sowie für Anforderungen, Ausnahmen, Leistungsindikatoren und weitere Metriken ausführen. Das folgende Beispiel zeigt alle Anforderungen der letzten Stunde:

Application Insights-Anforderungsdetails

Weitere Informationen zu den Funktionen des Application Insights-Portals finden Sie in der Dokumentation zum Application Insights-Portal.

Konfigurieren von Application Insights mit EventFlow

Wenn Sie EventFlow zum Aggregieren von Ereignissen verwenden, müssen Sie das NuGet-Paket Microsoft.Diagnostics.EventFlow.Outputs.ApplicationInsights importieren. Der Abschnitt outputs von eventFlowConfig.json muss folgenden Code enthalten:

"outputs": [
    {
        "type": "ApplicationInsights",
        "instrumentationKey": "***ADD INSTRUMENTATION KEY HERE***"
    }
]

Stellen Sie sicher, dass Sie die erforderlichen Änderungen in Ihren Filtern vornehmen und alle anderen Eingaben (zusammen mit den jeweiligen NuGet-Paketen) einfügen.

Application Insights SDK

Es empfiehlt sich, EventFlow und WAD als Aggregationslösungen zu verwenden, da diese einen modularen Ansatz für die Diagnose und Überwachung bieten. Das heißt, wenn Sie die Ausgaben von EventFlow ändern möchten, ist keine Änderung der eigentlichen Instrumentierung, sondern lediglich eine einfache Änderung der Konfigurationsdatei erforderlich. Wenn Sie sich für die Verwendung von Application Insights entscheiden und nicht planen, auf eine andere Plattform umzusteigen, empfiehlt es sich ggf., das neue SDK von Application Insights zu verwenden, um Ereignisse zu aggregieren und an Application Insights zu senden. Das bedeutet, dass Sie EventFlow nicht mehr zum Senden der Daten an Application Insights konfigurieren müssen, sondern stattdessen das Service Fabric-NuGet-Paket von Application Insights installieren. Details zu diesem Paket finden Sie hier.

Unter Application Insights-Unterstützung für Microservices und Container werden einige der neuen Features beschrieben, an denen gearbeitet wird (derzeit noch in der Betaversion) und mit denen Sie über umfangreichere vordefinierte Überwachungsoptionen mit Application Insights verfügen. Dazu gehören die Abhängigkeitsnachverfolgung (wird beim Erstellen einer AppMap aller Ihrer Dienste und Anwendungen in einem Cluster und der zugehörigen Kommunikation verwendet) und eine bessere Korrelation der Ablaufverfolgungen, die von Ihren Diensten stammen (trägt zur besseren Lokalisierung eines Problems im Workflow einer Anwendung oder eines Diensts bei).

Wenn Sie beim Entwickeln in .NET voraussichtlich einige der Service Fabric-Programmiermodelle verwenden und Application Insights als Plattform zum Visualisieren und Analysieren von Ereignis- und Protokolldaten verwenden möchten, empfiehlt es sich, das Application Insights SDK für den Workflow der Überwachung und Diagnose zu verwenden. Lesen Sie die Application Insights-Dokumentation und den Artikel Untersuchen von .NET/.NET Core- und Python-Ablaufverfolgungsprotokollen in Application Insights, um mit der Verwendung von Application Insights zum Erfassen und Anzeigen Ihrer Protokolle zu beginnen.

Wenn Sie Application Insights als Ausgabe für die Ereignisse und Protokolle konfiguriert haben, sollten nach wenigen Minuten Informationen in der Application Insights-Ressource angezeigt werden. Navigieren Sie zur Application Insights-Ressource, um zum Dashboard für die Ressource zu gelangen. Klicken Sie auf der Application Insights-Taskleiste auf Suchen, um die zuletzt empfangenen Ablaufverfolgungen anzuzeigen und zu filtern.

Metrik-Explorer ist ein nützliches Tool zum Erstellen von benutzerdefinierten Dashboards basierend auf den Metriken, die Ihre Anwendungen, Dienste und Cluster melden. Informationen zum Einrichten einiger benutzerdefinierter Diagramme basierend auf Ihren gesammelten Daten finden Sie unter Untersuchen von Metriken in Application Insights.

Durch Klicken auf Analytics gelangen Sie zum Application Insights Analytics-Portal, in dem Sie Ereignisse und Ablaufverfolgungen in größerem Umfang und mit mehr Optionen abfragen können. Weitere Informationen hierzu finden Sie unter Analytics in Application Insights.

Nächste Schritte