Problembehandlung beim Application Insights Profiler

Dieser Artikel enthält Schritte zur Problembehandlung sowie Informationen zur Verwendung von Application Insights Profiler.

Verwenden Sie den richtigen Profiler-Endpunkt?

Derzeit sind Azure Government und Microsoft Azure operated by 21Vianet die einzigen Regionen, für die Endpunktänderungen erforderlich sind.

App-Einstellung US Government-Cloud China-Cloud
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsProfilerEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Läuft Ihre App mit der richtigen Version?

Der Profiler wird auf dem .NET Framework höher als 4.6.2 unterstützt.

Wenn Ihre Web-App eine ASP.NET Core-Anwendung ist, muss sie die neueste unterstützte ASP.NET Core-Runtime ausführen.

Verwenden Sie den richtigen Azure-Dienstplan?

Profiler wird in kostenlosen oder geteilten App Service-Plänen nicht unterstützt. Aktualisieren Sie auf einen der grundlegenden Pläne für Profiler, um mit der Arbeit zu beginnen.

Hinweis

Der Azure Functions-Verbrauchsplan wird nicht unterstützt. Siehe Erstellen von Profilen für Azure Functions-Live-Apps mit Application Insights.

Suchen Sie innerhalb des richtigen Zeitrahmens nach Profiler-Daten?

Falls die Daten, die Sie anzeigen möchten, bereits älter als zwei Wochen sind, schränken Sie Ihren Zeitfilter ein, und versuchen Sie es noch einmal. Ablaufverfolgungen werden nach sieben Tagen gelöscht.

Können Sie auf das Gateway zugreifen?

Stellen Sie sicher,dass der Zugriff auf diese Webseite nicht durch eine Firewall oder Proxys blockiert wird.

Treten Timeouts auf oder müssen Sie überprüfen, ob Profiler ausgeführt wird?

Die Profiler-Daten werden nur hochgeladen, wenn sie an eine Anforderung angefügt werden können, die während der Profiler-Ausführung erfolgt ist. Profiler sammelt jede Stunde zwei Minuten lang Daten. Sie können Profiler auch auslösen, indem Sie eine Profilerstellungssitzung starten.

Profiler schreibt Meldungen zur Ablaufverfolgung und benutzerdefinierten Ereignissen in Ihre Application Insights-Ressource. Anhand dieser Ereignisse können Sie feststellen, wie Profiler ausgeführt wird.

Suchen Sie nach Meldungen zur Ablaufverfolgung, die von Profiler an Ihre Application Insights-Ressource gesendet wurden.

  1. Wählen Sie in Ihrer Application Insights-Ressource die Option Suchen im oberen Menü aus.

    Screenshot that shows selecting the Search button from the Application Insights resource.

  2. Anhand dieser Suchzeichenfolge können Sie die relevanten Daten suchen:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Die vorigen Suchergebnisse umfassen zwei Beispiele für Suchvorgänge aus zwei KI-Ressourcen:

    • Wenn die Anwendung keine Anforderungen empfängt, während der Profiler ausgeführt wird, erklärt die Nachricht, dass der Upload aufgrund von Inaktivität abgebrochen wurde.

    • Auf der rechten Seite wurde Profiler gestartet und hat benutzerdefinierte Ereignisse gesendet, wenn während der Profiler-Ausführung Anforderungen erkannt wurden. Wenn das ServiceProfilerSample benutzerdefinierte Ereignis angezeigt wird, bedeutet dies, dass ein Profil erfasst wurde und im Bereich Leistung von Application Insights verfügbar ist.

    Wenn keine Datensätze angezeigt werden, wird Pprofiler nicht ausgeführt oder hat ein Timeout. Stellen Sie sicher, dass Sie Profiler für Ihren Azure-Dienst aktiviert haben.

Doppelte Erfassung in parallelen Threads

Wenn zwei oder mehr parallele Threads einer Anforderung zugeordnet sind, kann die Gesamtzeitmetrik in der Stapelanzeige mehr als die Dauer der Anforderung sein. In diesem Fall übersteigt die Gesamtzeit der Threads die verstrichene Zeit.

Ein Thread wartet möglicherweise auf den Abschluss eines anderen Threads. Der Viewer versucht, solche Fälle zu erkennen und die nicht relevante Wartezeit zu ignorieren. Im Zweifelsfall werden jedoch eher zu viele Informationen angezeigt, um zu vermeiden, dass womöglich entscheidende Informationen ausgelassen werden.

Wenn Ihnen in Ihren Ablaufverfolgungen parallele Threads auffallen, bestimmen Sie die wartenden Threads, um den kritischen Pfad für die Anforderung ermitteln zu können. In der Regel wartet der Thread, der schnell in einen Wartezustand wechselt, auf den Abschluss der anderen Threads. Konzentrieren Sie sich auf die anderen Threads, und ignorieren Sie die Zeit in den wartenden Threads.

Problembehandlung beim Profiler auf Ihrem spezifischen Azure-Dienst

In den folgenden Abschnitten werden die Schritte zur Problembehandlung für die Verwendung von Profiler in Azure App Service oder Azure Cloud Services beschrieben.

Azure App Service

Damit Profiler ordnungsgemäß funktioniert, müssen die folgenden Voraussetzungen erfüllt sein:

  • Für Ihre Web-App ist Application Insights aktiviert mit den richtigen Einstellungen.

  • Der WebJob ApplicationInsightsProfiler3 wird ausgeführt. So überprüfen Sie den Webauftrag:

    1. Wechseln Sie zu Kudu. Führen Sie im Azure-Portal die folgenden Schritte aus:

      1. Wählen Sie in Ihrer App Service-Instanz die Option Erweiterte Tools im linken Bereich aus.
      2. Klicken Sie auf Starten.
    2. Wählen Sie im oberen Menü Tools>WebJobs-Dashboard aus. Der Bereich WebJobs wird geöffnet.

      Wenn ApplicationInsightsProfiler3 nicht angezeigt wird, starten Sie Ihre App Service-Anwendung neu.

      Screenshot that shows the WebJobs pane, which displays the name, status, and last runtime of jobs.

    3. Klicken Sie zum Anzeigen der WebJob-Details einschließlich des Protokolls auf den Link ApplicationInsightsProfiler3. Der Bereich Continuous WebJob Details (Details des fortlaufenden WebJobs) wird geöffnet.

      Screenshot that shows the Continuous WebJob Details pane.

Wenn Profiler bei Ihnen immer noch nicht funktioniert, laden Sie das Protokoll herunter, und übermitteln Sie ein Azure-Supportticket.

Überprüfen der Seite „Status“ der Websiteerweiterung für Diagnostic Services

Wenn Profiler über den Bereich Application Insights im Portal aktiviert wurde, erfolgte die Aktivierung über die Websiteerweiterung für Diagnosedienste. Sie können die Statusseite dieser Erweiterung prüfen, indem Sie zu https://{site-name}.scm.azurewebsites.net/DiagnosticServices wechseln.

Hinweis

Die Domäne des Links zur Statusseite hängt von der Cloud ab. Diese Domäne entspricht der Kudu-Verwaltungswebsite für App Service.

Auf dieser Statusseite wird der Installationsstatus von Profiler und den Momentaufnahmedebugger-Agents angezeigt. Wenn ein unerwarteter Fehler aufgetreten ist, wird er zusammen mit den Schritten zur Problembehebung angezeigt.

Sie können die Kudu-Verwaltungswebsite für App Service dazu verwenden, die Basis-URL dieser Statusseite abzurufen:

  1. Öffnen Sie im Azure-Portal Ihre App Service-Anwendung.
  2. Wählen Sie Erweiterte Tools aus.
  3. Klicken Sie auf Starten.
  4. Auf der Kudu-Verwaltungswebsite:
    1. Fügen Sie /DiagnosticServices an die URL an.
    2. Drücken Sie die EINGABETASTE.

Sie endet auf https://<kudu-url>/DiagnosticServices.

Es wird eine Statusseite ähnlich dem folgenden Beispiel angezeigt.

Screenshot that shows the Diagnostic Services status page.

Hinweis

Die codefreie Installation von Application Insights Profiler folgt der Richtlinie zur .NET Core-Unterstützung. Weitere Informationen zu unterstützten Runtimes finden Sie in der .NET Core-Unterstützungsrichtlinie.

Manuelle Installation

Wenn Sie Profiler konfigurieren, werden an den Einstellungen der Web-App Aktualisierungen vorgenommen. Wenn erforderlich, können Sie die Updates manuell anwenden.

Zu viele aktive Profilerstellungssitzungen

Sie können Profiler für maximal vier Web-Apps aktivieren, die im selben Diensttarif ausgeführt werden. Wenn Sie mehr als vier haben, löst Profiler möglicherweise den folgenden Fehler aus:

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Um dieses Problem zu beheben, verschieben Sie einige Web-Apps in einen anderen Diensttarif.

Bereitstellungsfehler: Verzeichnis ist nicht leer „D:\home\site\wwwroot\App_Data\jobs“

Wenn Sie Ihre Web-App erneut für eine Web-Apps-Ressource bereitstellen und Profiler aktiviert ist, wird möglicherweise eine Meldung wie die folgende angezeigt:

„Directory Not Empty 'D:\home\site\wwwroot\App_Data\jobs'“

Dieser Fehler tritt auf, wenn Sie Web Deploy über Skripts oder Azure Pipelines ausführen. Als Lösung fügen Sie die folgenden Bereitstellungsparameter der Web Deploy-Aufgabe hinzu:

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Diese Parameter löschen den Ordner, der von Application Insights Profiler verwendet wird, und heben die Sperre der erneuten Bereitstellung auf. Sie haben keine Auswirkungen auf die Profiler-Instanz, die gerade ausgeführt wird.

Wird Application Insights Profiler ausgeführt?

Profiler wird als fortlaufender WebJob in der Web-App ausgeführt. Sie können die Web-App-Ressource im Azure-Portal öffnen. Überprüfen Sie im Bereich WebJobs den Status von ApplicationInsightsProfiler. Wenn er nicht ausgeführt wird, öffnen Sie Protokolle, um weitere Informationen zu erhalten.

VMs und Azure Cloud Services

Anhand der folgenden Schritte können Sie feststellen, ob Profiler von der Azure-Diagnose richtig konfiguriert wurde:

  1. Vergewissern Sie sich, dass der Inhalt der bereitgestellten Azure-Diagnose-Konfiguration Ihren Erwartungen entspricht.

  2. Vergewissern Sie sich, dass die Azure-Diagnose in der Profiler-Befehlszeile den richtigen iKey übergibt.

  3. Prüfen Sie in der Profiler-Protokolldatei, ob Profiler ausgeführt wurde, aber einen Fehler zurückgegeben hat.

Überprüfen der Einstellungen, die zum Konfigurieren der Azure-Diagnose verwendet wurden:

  1. Anmelden beim virtuellen Computer.

  2. Öffnen Sie die Protokolldatei an diesem Speicherort. Die Plug-in-Version ist auf Ihrem Computer möglicherweise neuer.

    Für VMs:

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    Für Azure Cloud Services:

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. Suchen Sie in der Datei nach der Zeichenfolge WadCfg, um die Einstellungen zu finden, die zum Konfigurieren der Azure-Diagnose an den virtuellen Computer übergeben wurden.

  4. Überprüfen Sie, ob der von der Profiler-Senke verwendete iKey richtig ist.

  5. Überprüfen Sie die Befehlszeile, mit der Profiler gestartet wird. Die Argumente, die zum Starten von Profiler verwendet werden, befinden sich in der folgenden Datei (das Laufwerk könnte c: oder d: und das Verzeichnis könnte ausgeblendet sein):

    Für VMs:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Für Azure Cloud Services:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Stellen Sie sicher, dass der iKey in der Profiler-Befehlszeile richtig ist.

  7. Überprüfen Sie die Profiler-Protokolldatei namens BootstrapN.log anhand des Pfads in der vorherigen Datei config.json. Er enthält folgende Informationen:

    • Darin werden die Debuginformationen angezeigt, welche die von Profiler verwendeten Einstellungen angeben.
    • Außerdem werden Status- und Fehlermeldungen von Profiler angezeigt.

    Sie finden die Datei hier:

    Für VMs:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    Für Azure Cloud Services:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Wenn Profiler ausgeführt wird, während Ihre Anwendung Anforderungen empfängt, wird die folgende Meldung angezeigt: „Aktivität aus iKey erkannt“.

  9. Wenn die Ablaufverfolgung hochgeladen wird, wird die folgende Meldung angezeigt: „Starten, um die Ablaufverfolgung hochzuladen“.

Bearbeiten von Netzwerkproxy- oder Firewallregeln

Wenn Ihre Anwendung über einen Proxy oder über eine Firewall mit dem Internet verbunden ist, müssen Sie eventuell die Regeln aktualisieren, damit sie mit Profiler kommunizieren kann.

Die von Application Insights Profiler verwendeten IP-Adressen sind im Azure Monitor-Diensttag enthalten. Weitere Informationen finden Sie in der Dokumentation zu Diensttags.

Support

Wenn Sie weiterhin Hilfe benötigen, übermitteln Sie ein Supportticket im Azure-Portal. Geben Sie dabei die Korrelations-ID aus der Fehlermeldung an.