Die Transaktionssuche ist eine Funktion von Application Insights, mit der Sie einzelne Telemetrieelemente wie Seitenaufrufe, Ausnahmen oder Webanfragen finden und untersuchen können. Außerdem können Sie Protokollablaufverfolgungen und Ereignisse anzeigen, die Sie programmiert haben.
Verwenden Sie Log Analytics zum Anwenden komplexerer Abfragen für Ihre Daten.
Wo steht Search zur Verfügung?
Sie finden Search im Azure-Portal oder in Visual Studio.
Im Azure-Portal
Sie können die Transaktionssuche auf der Application Insights-Registerkarte Übersicht Ihrer Anwendung öffnen. Sie können auch Suchen im linken Menü unter Untersuchen auswählen.
Navigieren Sie zum Dropdownmenü Ereignistypen, um eine Liste von Telemetrieelementen anzuzeigen, beispielsweise Serveranforderungen, Seitenaufrufe oder benutzerdefinierte Ereignisse, die Sie programmiert haben. Am Anfang der Ergebnisliste befindet sich ein Übersichtsdiagramm, das die Anzahl der Ereignisse im Zeitablauf zeigt.
Klicken Sie auf eine Stelle außerhalb des Dropdownmenüs oder auf die Option Aktualisieren, um neue Ereignisse zu erhalten.
In Visual Studio
In Visual Studio gibt es auch das Fenster Application Insights-Suche. Es eignet sich am besten für die Anzeige von Telemetrieereignissen, die von der Anwendung generiert wurden, die Sie debuggen. Es kann aber auch die Ereignisse zeigen, die in Ihrer veröffentlichten App im Azure-Portal gesammelt wurden.
Öffnen Sie in Visual Studio das Fenster Application Insights-Suche:
Das Fenster Application Insights-Suche bietet ähnliche Features wie das Webportal:
Die Registerkarte Nachverfolgungsvorgang ist verfügbar, wenn Sie eine Anforderung oder einen Seitenaufruf öffnen. Ein „Vorgang“ ist eine Sequenz von Ereignissen, die einer einzelnen Anforderung oder einer einzelnen Seitenansicht zugeordnet sind. Abhängigkeitsaufrufe, Ausnahmen, Ablaufverfolgungsprotokolle und benutzerdefinierte Ereignisse können beispielsweise Teil eines einzelnen Vorgangs sein. Die Registerkarte Nachverfolgungsvorgang zeigt den Zeitpunkt und die Dauer dieser Ereignisse in Bezug auf die Anforderung oder den Seitenaufruf.
Überprüfen einzelner Elemente
Wählen Sie ein beliebiges Telemetrieelement aus, um Schlüsselfelder und verwandte Elemente anzuzeigen.
Die Ansicht mit den End-to-End-Transaktionsdetails wird geöffnet.
Filtern von Ereignistypen
Öffnen Sie das Dropdownmenü Ereignistypen, und wählen Sie die anzuzeigenden Ereignistypen aus. Wenn Sie die Filter später wiederherstellen möchten, wählen Sie Zurücksetzen aus.
Die Ereignistypen sind:
- Ablaufverfolgung: Diagnoseprotokolle, einschließlich TrackTrace, log4Net, NLog und Aufrufe von „System.Diagnostic.Trace“.
- Anforderung: Von Ihrer Serveranwendung empfangene HTTP-Anforderungen, einschließlich Seiten, Skripts, Bilder, Formatdateien und Daten. Diese Ereignisse werden verwendet, um die Übersichtsdiagramme für Anforderungen und Antworten zu erstellen.
- Seitenaufruf: Vom Webclient gesendete Telemetriedaten, die zum Erstellen von Seitenaufrufberichten verwendet werden.
- Benutzerdefiniertes Ereignis: Wenn Sie Aufrufe von
TrackEvent()
zum Überwachen der Nutzung eingefügt haben, können Sie diese hier suchen.
- Ausnahme: Nicht abgefangene Ausnahmen im Server und Ausnahmen, die Sie mit
TrackException()
protokollieren.
- Abhängigkeit: Aufrufe aus Ihrer Serveranwendung an andere Dienste wie REST-APIs oder Datenbanken sowie AJAX-Aufrufe aus Ihrem Clientcode.
- Verfügbarkeit: Ergebnisse von Verfügbarkeitstests
Filtern von Eigenschaftswerten
Sie können Ereignisse anhand der Werte ihrer Eigenschaften filtern. Die verfügbaren Eigenschaften hängen von den ausgewählten Ereignistypen ab. Wählen Sie Filter aus, um zu beginnen.
Das Auswählen keiner Werte einer bestimmten Eigenschaft hat dieselbe Wirkung wie das Auswählen aller Werte, nämlich dass das Filtern anhand dieser Eigenschaft deaktiviert wird.
Beachten Sie, dass die Zahlen rechts neben den Filterwerten anzeigen, wie viele Vorkommen es in der aktuell gefilterten Gruppe gibt.
Suchen von Ereignissen mit der gleichen Eigenschaft
Um alle Elemente mit demselben Eigenschaftswert zu finden, geben Sie diesen entweder in das Feld Suchen ein, oder aktivieren Sie das entsprechende Kontrollkästchen, wenn Sie Eigenschaften auf der Registerkarte Filter durchsuchen.
Durchsuchen der Daten
Hinweis
Um komplexere Abfragen zu schreiben, öffnen Sie oben im Bereich Suchen das Feld Protokolle (Analytics).
Sie können alle Eigenschaftswerte nach Ausdrücken durchsuchen. Diese Funktion ist nützlich, wenn Sie benutzerdefinierte Ereignisse mit Eigenschaftswerten schreiben.
Sie können auch einen Zeitbereich festlegen, weil die Suche in einem kürzeren Bereich schneller erfolgt.
Suchen Sie nach vollständigen Wörtern, nicht nach Teilzeichenfolgen. Verwenden Sie Anführungszeichen, um Sonderzeichen zu umschließen.
String |
Nicht gefunden |
Gefunden |
HomeController.Info |
home
controller
out |
homecontroller
about
"homecontroller.about" |
USA |
Uni
ted |
united
states
united AND states
"united states" |
Sie können die folgenden Suchausdrücke verwenden:
Beispielabfrage |
Wirkung |
apple |
Findet alle Ereignisse im Uhrzeitbereich, deren Felder den Begriff apple enthalten. |
apple AND banana
apple banana |
Findet Ereignisse, die beide Wörter enthalten. Verwenden Sie Großbuchstaben AND , nicht and . Kurzform. |
apple OR banana |
Findet Ereignisse, die eines der beiden Wörter enthalten. Verwenden Sie OR , nicht or . |
apple NOT banana |
Findet Ereignisse, die das eine Wort enthalten, aber nicht das andere. |
Sampling
Wenn Ihre App erhebliche Telemetriedaten generiert und ASP.NET SDK-Version 2.0.0-Beta3 oder höher verwendet, wird automatisch das an das Portal gesendete Volumen durch adaptive Stichprobenerstellung reduziert. Dieses Modul sendet nur einen repräsentativen Bruchteil von Ereignissen. Es werden Ereignisse aus- und abgewählt, die sich auf dieselbe Anforderung wie eine Gruppe beziehen, sodass Sie zwischen verknüpften Ereignissen navigieren können.
Erfahren Sie mehr über die Stichprobenentnahme.
Erstellen eines Arbeitselements
Sie können einen Fehler mit den Details aus einem beliebigen Telemetrieelement in GitHub oder Azure DevOps erstellen.
Wechseln Sie zur Detailansicht für End-to-End-Transaktionen, indem Sie ein beliebiges Telemetrieelement auswählen. Wählen Sie dann Arbeitselement erstellen aus.
Wenn Sie diesen Schritt zum ersten Mal ausführen, werden Sie aufgefordert, einen Link zu Ihrer Azure DevOps-Organisation und Ihrem Projekt zu konfigurieren. Sie können den Link auch auf der Registerkarte Arbeitselemente konfigurieren.
Senden weiterer Telemetriedaten an Application Insights
Neben der standardmäßig vom Application Insights SDK gesendeten Telemetriedaten können Sie folgende Aktionen ausführen:
Erfassen von Protokollablaufverfolgungen mithilfe Ihres bevorzugten Protokollierungsframeworks in .NET oder Java. Das heißt, dass Sie Ihre Protokollablaufverfolgungen durchsuchen und mit Seitenaufrufen, Ausnahmen und anderen Ereignissen korrelieren können.
Schreiben von Code zum Senden benutzerdefinierter Ereignisse, Seitenaufrufe und Ausnahmen.
Erfahren Sie, wie Sie Protokolle und benutzerdefinierte Telemetrie an Application Insights senden können.
Häufig gestellte Fragen
Antworten auf häufig gestellte Fragen
Wie viele Daten werden beibehalten?
Entsprechende Informationen finden Sie unter Zusammenfassung der Grenzwerte.
Wie kann ich die POST-Daten in meinen Serveranforderungen anzeigen?
POST-Daten werden nicht automatisch protokolliert. Sie können jedoch TrackTrace oder Protokollaufrufe verwenden. Fügen Sie die POST-Daten in den "message"-Parameter ein. Sie können nicht anhand der Nachricht wie anhand von Eigenschaften filtern, aber dafür ist der Größengrenzwert höher.
Warum gibt meine Azure Functions-Suche keine Ergebnisse zurück?
Azure Functions protokolliert keine URL-Abfragezeichenfolgen.
Die einheitliche Diagnoseoberfläche setzt die serverseitige Telemetrie übergreifend von allen Ihren mithilfe von Application Insights überwachten Komponenten automatisch in einer einzelnen Ansicht in Beziehung. Es spielt keine Rolle, wenn Sie über mehrere Ressourcen verfügen. Application Insights erkennt die zugrundeliegende Beziehung und ermöglicht Ihnen die komfortable Diagnose der Anwendungskomponente, Abhängigkeit oder Ausnahme, die zur langsamen Ausführung oder einem Fehler bei einer Transaktion geführt hat.
Was ist eine Komponente?
Komponenten sind unabhängig bereitstellbare Teile Ihrer verteilten oder Microserviceanwendung. Entwickler und Betriebsteams verfügen über Sichtbarkeit oder Zugriff für die von diesen Anwendungskomponenten generierte Telemetrie auf Codeebene.
- Komponenten unterscheiden sich von „beobachteten“ externen Abhängigkeiten wie SQL und Event Hubs, auf die Ihr Team oder Ihre Organisation möglicherweise keinen Zugriff hat (Code oder Telemetriedaten).
- Komponenten können in einer beliebigen Anzahl von Server-, Rollen- oder Containerinstanzen ausgeführt werden.
- Komponenten können separate Application Insights-Instumentierungsschlüssel sein, auch wenn sich die Abonnements unterscheiden. Komponenten können auch verschiedene Rollen sein, die an einen einzelnen Application Insights-Instumentierungsschlüssel melden. Auf der neuen Benutzeroberfläche werden Details übergreifend über alle Komponenten angezeigt, unabhängig von deren Einrichtung.
Hinweis
Fehlen die Links zu verwandten Elementen? Die gesamte verwandte Telemetrie findet sich in den Abschnitten oben und unten auf der linken Seite.
Oberfläche zur Transaktionsdiagnose
Diese Ansicht enthält vier wichtige Teile:
- eine Ergebnisliste
- ein komponentenübergreifendes Transaktionsdiagramm
- eine Zeitsequenzliste aller Telemetriedaten, die sich auf diesen Vorgang beziehen
- den Detailbereich für ein ausgewähltes Telemetrieelement
Komponentenübergreifendes Transaktionsdiagramm
Dieses Diagramm stellt eine komponentenübergreifende Zeitachse mit horizontalen Balken während Anforderungen und Abhängigkeiten bereit. Alle gesammelten Ausnahmen werden ebenfalls auf der Zeitachse markiert.
- Die obere Zeile in diesem Diagramm stellt den Einstiegspunkt dar. Es handelt sich um die eingehende Anforderung an die erste in dieser Transaktion aufgerufene Komponente. Die Dauer stellt hier die insgesamt für den Abschluss der Transaktion in Anspruch genommene Zeit dar.
- Alle Aufrufe von externen Abhängigkeiten sind einfache, nicht reduzierbare Zeilen mit Symbolen, die den Abhängigkeitstyp darstellen.
- Aufrufe an andere Komponenten sind in zuklappbaren Zeilen aufgeführt. Jede Zeile entspricht einem bestimmten für die Komponenten aufgerufenen Vorgang.
- Standardmäßig wird die von Ihnen ausgewählte Anforderung, Abhängigkeit oder Ausnahme rechts angezeigt. Wählen Sie eine beliebige Zeile aus, um ihre Details anzuzeigen.
Hinweis
Aufrufe anderer Komponenten weisen zwei Zeilen auf. Eine Zeile stellt den ausgehenden Aufruf (Abhängigkeit) von der aufrufenden Komponente dar. Die andere Zeile entspricht der eingehenden Anforderung bei der aufgerufenen Komponente. Das führende Symbol und die unterschiedliche Gestaltung der Balken für die Dauer erleichtern die Unterscheidung zwischen ihnen.
Die gesamte Telemetrie mit dieser Vorgangs-ID
Dieser Abschnitt zeigt eine flache Listenansicht in einer zeitlichen Abfolge der gesamten Telemetrie in Bezug auf diese Transaktion. Er zeigt ferner die benutzerdefinierten Ereignisse und Ablaufverfolgungen, die im Transaktionsdiagramm nicht angezeigt werden. Sie können diese Liste nach den von einer bestimmten Komponente oder einem Aufruf generierten Telemetriedaten filtern. Sie können in dieser Liste beliebige Telemetrieelemente auswählen, um die entsprechenden Details auf der Seite anzuzeigen.
Details zur ausgewählten Telemetrie
In diesem reduzierbaren Bereich werden die Details jedes ausgewählten Elements aus dem Transaktionsdiagramm oder der Liste angezeigt. Mit Alle anzeigen werden alle erfassten Standardattribute aufgelistet. Jegliche benutzerdefinierte Attribute werden gesondert unterhalb des Standardsatzes aufgeführt. Wählen Sie die Schaltfläche mit den Auslassungspunkten (...) unter dem Ablaufverfolgungsfenster Aufrufliste aus, damit eine Option zum Kopieren der Ablaufverfolgung angezeigt wird. Mit Profiler-Ablaufverfolgung öffnen und Debugmomentaufnahme öffnen werden Diagnosen auf Codeebene in entsprechenden Detailbereichen angezeigt.
Suchergebnisse
Dieser reduzierbare Bereich zeigt die anderen Ergebnisse an, die den Filterkriterien entsprechen. Wählen Sie ein beliebiges Ergebnis aus, um die entsprechenden Details in den drei vorangegangenen Abschnitten zu aktualisieren. Wir versuchen, Stichproben zu finden, die höchstwahrscheinlich die aus allen Komponenten verfügbaren Details enthalten, selbst wenn die Stichprobenentnahme in einer dieser Komponenten aktiviert ist. Diese Stichproben werden als Vorschläge angezeigt.
.NET-Profiler und Momentaufnahmedebugger
Der .NET-Profiler oder der Momentaufnahmedebugger unterstützen die Diagnose von Leistungs- und Ausfallproblemen auf Codeebene. Mit dieser Benutzeroberfläche können Sie .NET-Profiler-Ablaufverfolgungen oder Momentaufnahmen von beliebigen Komponenten mit nur einem Klick anzeigen.
Setzen Sie sich bei Problemen mit dem .NET-Profiler unter serviceprofilerhelp@microsoft.com mit uns in Verbindung.
Setzen Sie sich bei Problemen mit dem Momentaufnahmedebugger unter snapshothelp@microsoft.com mit uns in Verbindung.
Häufig gestellte Fragen
Dieser Abschnitt enthält Antworten auf häufig gestellte Fragen.
Warum wird eine einzelne Komponente im Diagramm angezeigt, und die anderen Komponenten werden nur als externe Abhängigkeiten ohne Details angezeigt?
Mögliche Ursachen:
- Sind die anderen Komponenten mit Application Insights instrumentiert?
- Verwenden sie das neueste stabile Application Insights-SDK?
- Wenn es sich bei diesen Komponenten um separate Application Insights-Ressourcen handelt, prüfen Sie, ob Sie den erforderlichen Zugriff haben.
Wenn Sie Zugriff haben und die Komponenten mit den neuesten Application Insights-SDKs instrumentiert sind, informieren Sie uns über den Feedbackkanal in der oberen rechten Ecke.
Ich sehe doppelte Zeilen für die Abhängigkeiten. Ist dieses Verhalten zu erwarten?
Zurzeit zeigen wir den ausgehenden Abhängigkeitsaufruf separat von der eingehenden Anforderung an. Normalerweise sehen die beiden Aufrufe identisch aus, lediglich der Wert für die Dauer unterscheidet sich aufgrund des Netzwerk-Roundtrips. Das führende Symbol und die unterschiedliche Gestaltung der Balken für die Dauer erleichtern die Unterscheidung zwischen ihnen. Finden Sie diese Darstellung der Daten verwirrend? Senden Sie uns Ihr Feedback!
Treten Uhrabweichungen über verschiedene Komponenteninstanzen hinweg auf?
Die Zeitachsen im Transaktionsdiagramm gleichen Uhrabweichungen aus. Sie können die genauen Zeitstempel im Detailbereich oder mithilfe von Log Analytics anzeigen.
Dieses Verhalten ist beabsichtigt. Alle verwandten Elemente sind komponentenübergreifend bereits auf der linken Seite im oberen und unteren Abschnitt verfügbar. Die neue Benutzeroberfläche weist zwei zugehörige Elemente auf, die von der linken Seite nicht abgedeckt werden: die gesamte Telemetrie fünf Minuten vor und nach dem Ereignis und die Benutzerzeitachse.
Gibt es eine Möglichkeit, weniger Ereignisse pro Transaktion anzuzeigen, wenn ich das Application Insights JavaScript SDK verwende?
In der Transaktionsdiagnoseerfahrung werden alle Telemetriedaten in einem einzelnen Vorgang angezeigt, der eine Vorgangs-ID freigibt. Standardmäßig erstellt das Application Insights SDK für JavaScript einen neuen Vorgang für jede eindeutige Seitenansicht. In einer Single-Page-Anwendung (SPA) wird nur ein Seitenansichtsereignis generiert, eine einzelne Vorgangs-ID wird für alle generierten Telemetriedaten verwendet. Dies kann dazu führen, dass viele Ereignisse mit demselben Vorgang korreliert werden.
In diesen Szenarien können Sie die automatische Routenverfolgung verwenden, um automatisch neue Vorgänge für die Navigation in Ihrer SPA (Single-Page-App) zu erstellen. Sie müssen enableAutoRouteTracking aktivieren, damit bei jeder Aktualisierung der URL-Route (logische Seitenansicht) eine Seitenansicht generiert wird. Wenn Sie die Vorgangs-ID manuell aktualisieren möchten, rufen Sie appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId()
auf. Das manuelle Auslösen eines PageView-Ereignisses setzt ebenfalls die Vorgangs-ID zurück.
Warum ergibt die Addition der Transaktionsdetaildauern nicht die Dauer der Top-Anforderung?
Zeiten, die nicht im Gantt-Diagramm erläutert werden, sind Zeiten, die nicht durch eine nachverfolgte Abhängigkeit abgedeckt sind. Dieses Problem kann auftreten, weil externe Anrufe weder automatisch noch manuell instrumentiert wurden. Es kann auch auftreten, weil die benötigte Zeit nicht aufgrund eines externen Aufrufs, sondern während der Verarbeitung aufgebracht wurde.
Wenn alle Aufrufe instrumentiert wurden, ist „in Bearbeitung“ die wahrscheinliche Grundursache für die aufgewendete Zeit. Ein nützliches Tool für die Diagnose des Prozesses ist der .NET-Profiler.
Was geschieht, wenn die Meldung Fehler beim Abrufen von Daten beim Navigieren in Application Insights im Azure-Portal angezeigt wird?
Dieser Fehler zeigt an, dass der Browser eine erforderliche API nicht aufrufen konnte, oder dass die API eine Fehlerantwort zurückgegeben hat. Um das Verhalten zu behandeln, öffnen Sie ein InPrivate-Fenster im Browser, und deaktivieren Sie alle Browsererweiterungen, die ausgeführt werden. Identifizieren Sie dann, ob Sie das Portalverhalten immer noch reproduzieren können. Wenn der Portalfehler weiterhin auftritt, versuchen Sie, dies mit anderen Browsern oder anderen Computern zu testen, untersuchen Sie DNS- oder andere netzwerkbezogene Probleme des Clientcomputers, auf dem die API-Aufrufe fehlschlagen. Wenn der Portalfehler weiterhin auftritt und eine weitere Untersuchung erforderlich ist, sammeln Sie eine Browsernetzwerkverfolgung, während das unerwartete Portalverhalten wiedergegeben wird und öffnen Sie einen Supportfall über das Azure-Portal.