Was ist Application Insights?
Application Insights analysiert die Leistung Ihrer Webanwendung und kann Sie vor potenziellen Problemen warnen.
Dieses Feature erfordert keine besondere Einrichtung, außer der Konfiguration Ihrer App für Application Insights (unter ASP.NET, Java oder Node.js und im Code der Webseite). Es ist aktiv, sobald Ihre App genügend Telemetriedaten generiert.
Wann erhalte ich eine Benachrichtigung der intelligenten Erkennung?
Application Insights sendet eine Benachrichtigung, wenn erkannt wird, dass die Leistung Ihrer Anwendung auf eine der folgenden Arten beeinträchtigt wurde:
- Verschlechterung der Antwortzeit: Ihre App reagiert langsamer auf Anforderungen als gewöhnlich. Die Änderung ist möglicherweise plötzlich aufgetreten – z. B. wenn es bei Ihrer neuesten Bereitstellung zu einer Regression gekommen ist –, oder die Verschlechterung ist graduell erfolgt, vielleicht weil es zu einem Arbeitsspeicherverlust gekommen ist.
- Verschlechterung der Dauer der Abhängigkeit: Ihre App ruft eine REST-API, eine Datenbank oder eine andere Abhängigkeit auf. Die Abhängigkeit reagiert langsamer als gewöhnlich.
- Langsames Leistungsmuster: Ihre App weist ein Leistungsproblem auf, das sich nur auf einige Anforderungen auswirkt. Beispielsweise werden Seiten mit einigen Browsertypen deutlich langsamer als mit anderen Browsern geladen, oder Anforderungen werden über einen bestimmten Server deutlich langsamer bereitgestellt. Application Insights überprüft mit Algorithmen die Seitenladezeiten, Antwortzeiten von Anforderungen und Antwortzeit von Abhängigkeiten.
Die intelligente Erkennung ist ein Feature von Application Insights, das Sie vor potenziellen Leistungsproblemen und Fehleranomalien in Ihrer Webanwendung warnt. Es sind Telemetriedaten von mindestens acht Tagen mit ausreichendem Volumen erforderlich, um eine Baseline zu erstellen. Nach dieser Zeitspanne führt jedes signifikante Problem zu einer Benachrichtigung.
Weist eine Warnung immer auf ein Problem hin?
Eine Warnung bedeutet nicht unbedingt, dass Ihre App ein Problem hat. Es ist eher eine Anregung, das Sie sich etwas vielleicht genauer ansehen sollten.
Wie behebe ich Probleme?
Jede Warnmeldung enthält Diagnoseinformationen. Nachfolgend finden Sie ein Beispiel dafür, wie Sie diese Informationen verwenden können:
- Für die Sichtung: Die Benachrichtigung zeigt an, wie viele Benutzer oder wie viele Vorgänge betroffen sind. Dadurch können Sie dem Problem eine Priorität zuweisen.
- Zum Bestimmen des Umfangs: Betrifft das Problem den gesamten Datenverkehr oder nur bestimmte Seiten? Ist das Problem auf bestimmte Browser oder Standorte beschränkt?
- Zu Diagnosezwecken: Häufig finden Sie in den Diagnoseinformationen in der Benachrichtigung eine mögliche Ursache des Problems. Wenn sich z. B. die Antwortzeiten bei einer hohen Anforderungsrate verlangsamen, deutet das darauf hin, dass der Server oder Ihre Abhängigkeiten überlastet sind. Wenn Sie weitere Informationen benötigen, öffnen Sie den Abschnitt Leistung in Application Insights. Dort finden Sie Profilerdaten. Wenn Ausnahmen ausgelöst wurden, können Sie auch den Momentaufnahmedebugger ausprobieren.
Konfigurieren von E-Mail-Benachrichtigungen
Benachrichtigungen der intelligenten Erkennung sind standardmäßig aktiviert und werden an Personen gesendet, die über Besitzer, Mitwirkende und Leser mit Zugriff auf die Application Insights-Ressource verfügen. Um dies zu ändern, wählen Sie in der E-Mail-Benachrichtigung Konfigurieren aus, oder öffnen Sie die Einstellungen für die intelligente Erkennung in Application Insights.
Über den Link Austragen in der E-Mail zur intelligenten Erkennung können Sie den Empfang von E-Mail-Benachrichtigungen kündigen.
Pro Tag und Application Insights-Ressource wird nur eine E-Mail zu Leistungsanomalien der intelligenten Erkennung gesendet. Die E-Mail wird nur gesendet, wenn an diesem Tag mindestens ein neues Problem erkannt wurde.
Wie kann ich die Leistung verbessern?
Langsame und fehlerhafte Antworten sind für Websitebenutzer frustrierend. Es ist wichtig, die Probleme schnell zu beheben. Die folgenden Schritte müssen ausgeführt werden, um die Leistung zu verbessern:
- Eingrenzung
- Diagnose
- Verbessern
Schauen wir uns diese Schritte in Bezug auf die Seitenladezeiten genauer an.
Eingrenzung
Bei der Betrachtung des Problems stellt sich zunächst die Frage, ob es wichtig ist. Wenn eine Seite immer langsam geladen wird, aber nur 1 % der Benutzer Ihrer Website sie sich jemals ansehen, dann hat das Problem eine niedrige Priorität. Wenn andererseits nur 1 % der Benutzer die Seite öffnen, diese aber jedes Mal eine Ausnahme auslöst, ist die Priorität hoch. Verwenden Sie die Aussage zur Auswirkung (betroffene Benutzer oder Prozentsatz des Datenverkehrs) als allgemeinen Anhaltspunkt, aber bedenken Sie, dass mit der Auswirkung nicht alles abgedeckt wird. Sammeln Sie weitere Beweise, und berücksichtigen Sie die Parameter des Problems. Wenn das Problem von der Geografie abhängt, richten Sie Verfügbarkeitstests ein, die die Region einbeziehen.
Diagnostizieren des langsamen Ladens von Seiten
Stellen Sie sich bei der Diagnose des Problems die folgenden Fragen:
- Wo liegt das Problem?
- Reagiert der Server langsam?
- Ist die Seite lang?
- Muss der Browser viele Aufgaben erledigen, um diese Seite anzuzeigen?
Wenn Sie die Antwortzeiten des Browsers untersuchen, öffnen Sie die Metrik des Browsers. Die segmentierte Anzeige der Seitenladezeiten im Browser gibt an, wo Zeit verbraucht wird.
- Wenn die Zeit für das Senden von Anforderungen hoch ist, reagiert entweder der Server langsam, oder die Anforderung umfasst eine große Datenmenge für den POST-Vorgang. Sehen Sie sich die Leistungsmetriken an, um die Reaktionszeiten zu prüfen.
- Richten Sie die Abhängigkeitsüberwachung ein, um ermitteln zu können, ob die Verzögerung mit externen Diensten oder Ihrer Datenbank zusammenhängt.
- Wenn Empfängt Antwortzeit vorherrscht, sind Ihre Seite und die abhängigen Teile lang, z. B. JavaScript, CSS, Bilder usw. (jedoch nicht asynchron geladene Daten). Richten Sie einen Verfügbarkeitstest ein, und legen Sie die Option zum Laden abhängiger Teile fest. Wenn Sie einige Ergebnisse erhalten, öffnen Sie die Details eines Ergebnisses und erweitern diese, um die Ladezeiten für unterschiedliche Dateien anzuzeigen.
- Eine hohe Clientverarbeitungszeit deutet darauf hin, dass die Ausführung von Skripts lange dauert. Falls die Ursache nicht offensichtlich ist, können Sie erwägen, Zeitsteuerungscode hinzuzufügen und die Zeiten über
trackMetric
-Aufrufe zu senden.
Verbessern langsamer Seiten
Nachfolgend finden Sie einige Punkte, die Sie bei der Verbesserung langsamer Seiten betrachten sollten:
- Langsames Laden aufgrund von großen Dateien: Laden Sie die Skripts und anderen Teile asynchron. Verwenden Sie die Skriptbündelung. Unterteilen Sie die Hauptseite in Widgets, für die die Daten separat geladen werden. Kein Senden von reinen „alten“ HTML-Daten für lange Tabellen: Verwenden Sie ein Skript, um die Daten als JSON oder in einem anderen kompakten Format anzufordern, und füllen Sie anschließend die Tabelle lokal mit Daten auf.
- Langsame Serverabhängigkeiten: Sehen Sie sich die geografischen Standorte der Komponenten an. Stellen Sie bei Verwendung von Azure beispielsweise sicher, dass sich der Webserver und die Datenbank in derselben Region befinden. Werden bei Abfragen mehr Informationen als nötig abgerufen? Würde das Zwischenspeichern oder eine Batchverarbeitung helfen?
- Kapazitätsprobleme: Sehen Sie sich die Servermetriken von Reaktionszeiten und die Anforderungsanzahl an. Wenn für die Antwortzeiten unverhältnismäßige Spitzen gegenüber den Spitzen bei der Anzahl der Anforderungen zu beobachten sind, ist die Wahrscheinlichkeit hoch, dass Ihre Server überlastet sind. Erwägen Sie ein zentrales oder horizontales Hochskalieren.
Beeinträchtigte Antwortzeit des Servers
Eine Benachrichtigung zur Beeinträchtigung der Antwortzeit zeigt Folgendes an:
- Die Antwortzeit im Vergleich zur normalen Antwortzeit für diesen Vorgang.
- Wie viele Benutzer betroffen sind.
- Die durchschnittliche Antwortzeit und die Antwortzeit des 90. Quantils für diesen Vorgang am Tag der Erkennung und an den sieben Tagen davor.
- Die Anzahl der Vorgangsanforderungen am Tag der Erkennung und an den sieben Tagen davor.
- Korrelation zwischen Beeinträchtigungen bei diesem Vorgang und Beeinträchtigungen in zugehörigen Abhängigkeiten.
- Ressourcen, die Ihnen bei der Diagnose des Problems helfen:
- Mithilfe von Profiler-Ablaufverfolgungen können Sie sehen, womit die Betriebszeit verbracht wird (der Link ist verfügbar, wenn Beispiele für Profiler-Ablaufverfolgungen für diesen Vorgang während des Erfassungszeitraums gesammelt wurden).
- Leistungsberichte im Metrikexplorer, wo Sie Zeitbereiche und Filter für diesen Vorgang untersuchen können.
- Suche nach diesem Aufruf, um bestimmte Aufrufeigenschaften anzuzeigen.
- Fehlerberichte. Ist der Zähler größer als 1, lagen Fehler im Vorgang vor, die zur Leistungsbeeinträchtigung beigetragen haben könnten.
Beeinträchtigung der Abhängigkeitsdauer
Wenn Ihre Anwendung stark von externen Diensten abhängt, ist es eine gute Idee, auf die Beeinträchtigung der Abhängigkeiten zu achten.
Nachfolgend finden Sie eine Beispielbenachrichtigung zur Beeinträchtigung der Abhängigkeiten:
Dies zeigt Folgendes:
- Die Dauer im Vergleich zur normalen Antwortzeit für diesen Vorgang
- Wie viele Benutzer betroffen sind.
- Durchschnittliche Dauer und die Dauer des 90. Quantils für diese Abhängigkeit am Tag der Erkennung und an den sieben Tagen davor.
- Die Anzahl der Abhängigkeitsaufrufe am Tag der Erkennung und an den sieben Tagen davor.
- Ressourcen, die Ihnen bei der Diagnose des Problems helfen:
- Leistungsberichte im Metrikexplorer für diese Abhängigkeit.
- Suche nach den Aufrufen dieser Abhängigkeit, um Eigenschaften von Aufrufen anzuzeigen.
- Fehlerberichte. Wenn es mindestens einen Fehler gibt, deutet dies darauf hin, dass es während des Erkennungszeitraums fehlerhafte Abhängigkeitsaufrufe gab, die zur Beeinträchtigung der Dauer beigetragen haben könnten.
- Öffnen von Analysen mit Abfragen, die diese Abhängigkeitsdauer und -anzahl berechnen.
Intelligente Erkennung langsamer Leistungsmuster
Application Insights ermittelt Leistungsprobleme, die sich möglicherweise nur auf einige Benutzer auswirken oder nur in bestimmten Fällen eine Auswirkung für Benutzer darstellen. Sie könnten z. B. erkennen, dass langsame Seitenladevorgänge nur mit einem bestimmten Browsertyp oder in einem bestimmten geografischen Gebiet auftreten.
Anomalien dieser Art sind schwer zu erkennen, wenn nur die Daten untersucht werden, aber sie kommen häufiger vor, als vielleicht gedacht. Sie erfahren davon meistens erst, wenn Sie Beschwerden von Kunden erhalten.
Application Insights überprüft mit Algorithmen die Seitenladezeiten, Antwortzeiten auf dem Server von Anforderungen und Antwortzeit von Abhängigkeiten. Sie müssen keine Schwellenwerte festlegen und keine Regeln konfigurieren. Machine Learning- und Data Mining-Algorithmen werden verwendet, um ungewöhnliche Muster zu erkennen. Hier ist ein Beispiel für eine Benachrichtigung:
Das Feld Wann gibt den Zeitpunkt an, zu dem das Problem erkannt wurde.
Das Feld Was beschreibt Folgendes:
- Das erkannte Problem.
- Die Ereignisse, die zu dem Problemverhalten geführt haben.
In der Tabelle wird diese Gruppe mit beeinträchtigter Leistung mit dem durchschnittlichen Verhalten aller anderen Ereignisse verglichen.
Wählen Sie die Links aus, um den Metrik-Explorer und die Suche zu öffnen, um relevante Berichte zu finden, die nach der Zeit und den Eigenschaften des langsamen Leistungssatzes gefiltert sind, und ändern Sie dann den Zeitbereich und die Filter, um die Telemetriedaten zu untersuchen.