Suchen und Diagnostizieren von Leistungsproblemen mit Azure Application InsightsFind and diagnose performance issues with Azure Application Insights

Azure Application Insights erfasst die Telemetriedaten Ihrer Anwendung, um die Funktion und die Leistung zu analysieren.Azure Application Insights collects telemetry from your application to help analyze its operation and performance. Sie können mit diesen Informationen ggf. Probleme identifizieren oder Verbesserungen für die Anwendung entwerfen, die eine breite Benutzergruppe erreichen.You can use this information to identify problems that may be occurring or to identify improvements to the application that would most impact users. In diesem Tutorial lernen Sie den Prozess kennen, in dem die Leistung der Serverkomponenten der Anwendung und die Perspektive des Clients analysiert wird.This tutorial takes you through the process of analyzing the performance of both the server components of your application and the perspective of the client. Folgendes wird vermittelt:You learn how to:

  • Ermitteln der Leistung von serverseitigen VorgängenIdentify the performance of server-side operations
  • Analysieren von Servervorgängen zur Grundursachenermittlung von LeistungseinbußenAnalyze server operations to determine the root cause of slow performance
  • Ermitteln der langsamsten clientseitigen VorgängeIdentify slowest client-side operations
  • Analysieren der Details der Seitenansichten mit der AbfragespracheAnalyze details of page views using query language

VoraussetzungenPrerequisites

Für dieses Tutorial benötigen Sie Folgendes:To complete this tutorial:

Anmelden an AzureLog in to Azure

Melden Sie sich unter https://portal.azure.com beim Azure-Portal an.Log in to the Azure portal at https://portal.azure.com.

Identifizieren langsamer ServervorgängeIdentify slow server operations

Application Insights erfasst die Leistungsdetails der verschiedenen Vorgänge in Ihrer Anwendung.Application Insights collects performance details for the different operations in your application. Durch Identifizieren der Vorgänge mit der längsten Dauer können Sie potenzielle Probleme diagnostizieren oder die aktuelle Entwicklung bestmöglich auf die Verbesserung der allgemeinen Leistung der Anwendung ausrichten.By identifying those operations with the longest duration, you can diagnose potential problems or best target your ongoing development to improve the overall performance of the application.

  1. Klicken Sie auf Application Insights, und wählen Sie anschließend Ihr Abonnement aus.Select Application Insights and then select your subscription.

  2. Um den Bereich Leistung zu öffnen, klicken Sie entweder im Menü Untersuchen auf die Option Leistung oder auf das Diagramm Serverantwortzeit.To open the Performance panel either select Performance under the Investigate menu or click the Server Response Time graph.

    Leistung

  3. Der Bereich Leistung zeigt die Anzahl und durchschnittliche Dauer der einzelnen Anwendungsvorgänge an.The Performance panel shows the count and average duration of each operation for the application. Mit diesen Informationen können Sie die Vorgänge ermitteln, die die größten Auswirkungen auf Benutzer haben.You can use this information to identify those operations that most impact users. In diesem Beispiel sind GET Customers/Details und GET Home/Index aufgrund der relativ hohen Dauer und der Anzahl der Aufrufe auffällige Vorgänge.In this example, the GET Customers/Details and GET Home/Index are likely candidates to investigate because of their relatively high duration and number of calls. Andere Vorgänge dauern möglicherweise länger, wurden aber nur selten aufgerufen. Der Effekt einer Verbesserung wäre daher minimal.Other operations may have a higher duration but were rarely called, so the effect of their improvement would be minimal.

    Panel für die Leistung auf dem Server

  4. Das Diagramm zeigt derzeit die durchschnittliche Dauer der ausgewählten Vorgänge im Zeitverlauf an.The graph currently shows the average duration of the selected operations over time. Sie können zum 95. Perzentil wechseln, um die Leistungsprobleme zu ermitteln.You can switch to the 95th percentile to find the performance issues. Fügen Sie die für Sie interessanten Vorgänge hinzu, indem Sie sie an das Diagramm anheften.Add the operations that you're interested in by pinning them to the graph. Dies verdeutlicht, dass es einige Spitzen gibt, die eine Untersuchung wert sind.This shows that there are some peaks worth investigating. Isolieren Sie sie weiter, indem Sie das Zeitfenster des Diagramms verkleinern.Isolate this further by reducing the time window of the graph.

    Anheftvorgänge

  5. Im Leistungsbereich auf der rechten Seite sehen Sie die Verteilung der Dauer der verschiedenen Anforderungen für den ausgewählten Vorgang.The performance panel on the right shows distribution of durations for different requests for the selected operation. Reduzieren Sie das Fenster, um etwa beim 95. Perzentil zu beginnen.Reduce the window to start around the 95th percentile. Auf der Insights-Karte „3 Hauptabhängigkeiten“ sehen Sie auf einen Blick, dass die externen Abhängigkeiten wahrscheinlich zu einer langsamen Ausführung der Transaktionen beitragen.The "Top 3 dependencies" insights card, can tell you at a glance that the external dependencies are likely contributing to the slow transactions. Klicken Sie auf die Schaltfläche mit der Anzahl von Beispielen, um eine Liste der Beispiele anzuzeigen.Click on the button with number of samples to see a list of the samples. Anschließend können Sie ein beliebiges Beispiel auswählen, um Transaktionsdetails anzuzeigen.You can then select any sample to see transaction details.

  6. Sie sehen auf einen Blick, dass der Aufruf der Azure Table-Instanz „Fabrikamaccount“ am meisten zur Gesamtdauer der Transaktion beiträgt.You can see at a glance that the call to Fabrikamaccount Azure Table is contributing most to the total duration of the transaction. Darüber hinaus können Sie erkennen, dass eine Ausnahme zu einem Fehler geführt hat.You can also see that an exception caused it to fail. Sie können auf ein beliebiges Element in der Liste klicken, um seine Details auf der rechten Seite anzuzeigen.You can click on any item in the list to see its details on the right side. Weitere Informationen zur Oberfläche zur TransaktionsdiagnoseLearn more about the transaction diagnostics experience

    Vollständige Details zum Vorgang

  7. Der Profiler unterstützt Sie bei der Diagnose auf Codeebene: Er zeigt den tatsächlichen Code, der für den Vorgang ausgeführt wurde, und den Zeitaufwand für die einzelnen Schritte an.The Profiler helps get further with code level diagnostics by showing the actual code that ran for the operation and the time required for each step. Einige Vorgänge haben möglicherweise keine Ablaufverfolgung, da der Profiler in regelmäßigen Abständen ausgeführt wird.Some operations may not have a trace since the profiler runs periodically. Im Laufe der Zeit sollten weitere Vorgänge aber Ablaufverfolgungen erhalten.Over time, more operations should have traces. Um den Profiler für den Vorgang zu starten, klicken Sie auf Profiler-Ablaufverfolgungen.To start the profiler for the operation, click Profiler traces.

  8. Die Ablaufverfolgung zeigt die einzelnen Ereignisse für jeden Vorgang an, damit Sie die Grundursache für die Dauer des gesamten Vorgangs diagnostizieren können.The trace shows the individual events for each operation so you can diagnose the root cause for the duration of the overall operation. Klicken Sie auf eines der obersten Beispiele, die am längsten dauern.Click one of the top examples, which have the longest duration.

  9. Klicken Sie auf Langsamster Pfad, um den Pfad der Ereignisse zu markieren, die am meisten zur Gesamtdauer des Vorgangs beitragen.Click Hot Path to highlight the specific path of events that most contribute to the total duration of the operation. In diesem Beispiel können Sie sehen, dass der langsamste Aufruf von der Methode FabrikamFiberAzureStorage.GetStorageTableData stammt.In this example, you can see that the slowest call is from FabrikamFiberAzureStorage.GetStorageTableData method. Der Teil, der den Großteil der Zeit beansprucht, ist die Methode CloudTable.CreateIfNotExist.The part that takes most time is the CloudTable.CreateIfNotExist method. Wenn diese Codezeile bei jedem Aufruf der Funktion ausgeführt wird, werden unnötige Netzwerkaufruf- und CPU-Ressourcen verbraucht.If this line of code is executed every time the function gets called, unnecessary network call and CPU resource will be consumed. Die beste Möglichkeit zum Korrigieren des Codes besteht darin, diese Zeile in eine Startmethode einzufügen, die nur einmal ausgeführt wird.The best way to fix your code is to put this line in some startup method that only executes once.

    Profilerdetails

  10. Der Leistungstipp oben im Bildschirm belegt die Einschätzung, dass die hohe Dauer der Wartezeit geschuldet ist.The Performance Tip at the top of the screen supports the assessment that the excessive duration is due to waiting. Klicken Sie auf den Link Warten, um die Dokumentation zu den verschiedenen Ereignistypen aufzurufen.Click the waiting link for documentation on interpreting the different types of events.

    Leistungstipp

  11. Für eine weiterführende Analyse können Sie auf Ablaufverfolgung herunterladen klicken und die Ablaufverfolgung herunterladen.For further analysis, you can click Download Trace to download the trace. Sie können diese Daten mit PerfView anzeigen.You can view this data using PerfView.

Verwenden von Protokolldaten für den ServerUse logs data for server

Protokolle bieten eine umfangreiche Abfragesprache, mit der Sie alle von Application Insights erfassten Daten analysieren können.Logs provides a rich query language that allows you to analyze all data collected by Application Insights. Sie können damit tiefgehende Analysen von Anforderungs- und Leistungsdaten ausführen.You can use this to perform deep analysis on request and performance data.

  1. Kehren Sie zum Bereich mit den Vorgangsdetails zurück, und klicken Sie auf das ProtokollsymbolIn Protokollen anzeigen (Analytics) .Return to the operation detail panel and click Logs iconView in Logs (Analytics)

  2. Protokolle werden mit einer Abfrage für jede der Ansichten im Bereich geöffnet.Logs opens with a query for each of the views in the panel. Sie können diese Abfragen ohne weitere Veränderungen ausführen oder sie Ihren Anforderungen entsprechend ändern.You can run these queries as they are or modify them for your requirements. Die erste Abfrage zeigt die Dauer dieses Vorgangs im Zeitverlauf an.The first query shows the duration for this operation over time.

    Protokollabfrage

Identifizieren langsamer ClientvorgängeIdentify slow client operations

Zusätzlich zum Ermitteln von optimierbaren Serverprozessen kann Application Insights die Perspektive des Clientbrowsers analysieren.In addition to identifying server processes to optimize, Application Insights can analyze the perspective of client browsers. So können Sie nicht nur mögliche Verbesserungen an Clientkomponenten, sondern auch Probleme mit verschiedenen Browsern oder verschiedenen Standorten identifizieren.This can help you identify potential improvements to client components and even identify issues with different browsers or different locations.

  1. Um eine Zusammenfassung der Browserleistung anzuzeigen, gehen Sie folgendermaßen vor: Klicken Sie unter Untersuchen auf Browser und dann auf Browserleistung, oder klicken Sie unter Untersuchen auf Leistung, und wechseln Sie mithilfe der Schaltfläche „Server/Browser“ oben rechts zur Registerkarte Browser.Select Browser under Investigate then click Browser Performance or select Performance under Investigate and switch to the Browser tab by clicking the server/browser toggle button in the top right to open the browser performance summary. Dies ist eine grafische Zusammenfassung der verschiedenen Telemetrien Ihrer Anwendung aus der Perspektive des Browsers.This provides a visual summary of various telemetries of your application from the perspective of the browser.

    Browserzusammenfassung

  2. Wählen Sie mindestens einen Vorgangsnamen aus, klicken Sie unten rechts auf die blaue Schaltfläche „Beispiele“, und wählen Sie einen Vorgang aus.Select on one of the operation names then click the blue samples button in the bottom right and select an operation. Damit wird eine Übersicht über die vollständigen Transaktionsdetails geöffnet, und auf der rechten Seite können Sie die Seitenansichtseigenschaften anzeigen.This will bring up the end-to-end transaction details and on the right side you can view the Page View Properties. Hier können Sie die Details zum Client anzeigen, der die Seite anfordert, z.B. den Browsertyp und dessen Speicherort.This allows you to view details of the client requesting the page including the type of browser and its location. Diese Informationen können Ihnen dabei helfen, zu bestimmen, ob Leistungsprobleme mit bestimmten Clienttypen zu tun haben.This information can assist you in determining whether there are performance issues related to particular types of clients.

    Seitenansicht

Verwenden von Protokolldaten für den ClientUse logs data for client

Auf die gleiche Weise wie bei den für die Serverleistung gesammelten Daten stellt Application Insights alle Clientdaten für tiefgehende Analysen mithilfe von Protokollen zur Verfügung.Like the data collected for server performance, Application Insights makes all client data available for deep analysis using Logs.

  1. Kehren Sie zur Browserzusammenfassung zurück, und klicken Sie auf das Protokollsymbol In Protokollen anzeigen (Analytics) .Return to the browser summary and click Logs icon View in Logs (Analytics)

  2. Protokolle werden mit einer Abfrage für jede der Ansichten im Bereich geöffnet.Logs opens with a query for each of the views in the panel. Die erste Abfrage zeigt die Dauer für verschiedene Seitenansichten im Zeitverlauf an.The first query shows the duration for different page views over time.

    Protokollabfrage

  3. Die intelligente Diagnose ist eine Protokollfunktion, die eindeutige Muster in den Daten ermittelt.Smart Diagnostics is a feature of Logs identifies unique patterns in the data. Wenn Sie auf den Punkt für die intelligente Diagnose im Liniendiagramm klicken, wird dieselbe Abfrage ohne Datensätze ausgeführt, die die Anomalie verursacht hat.When you click the Smart Diagnostics dot in the line chart, the same query is run without the records that caused the anomaly. Details zu diesen Datensätzen werden im Kommentarabschnitt der Abfrage angezeigt, damit Sie ermitteln können, welche Eigenschaften dieser Seitenansichten die hohe Dauer verursacht haben.Details of those records are shown in the comment section of the query so you can identify the properties of those page views that are causing the excessive duration.

    Protokolle mit intelligenter Diagnose

Nächste SchritteNext steps

Nun, da Sie wissen, wie Sie Laufzeitausnahmen ermitteln, können Sie mit dem nächsten Tutorial fortfahren. Dort erfahren Sie, wie Sie im Falle von Fehlern Warnungen erstellen.Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to create alerts in response to failures.