Freigeben über


Abhängigkeitsnachverfolgung in Application Insights

Eine Abhängigkeit ist eine Komponente, die von Ihrer Anwendung aufgerufen wird. Es handelt sich in der Regel um einen Dienst, der über HTTP, eine Datenbank oder ein Dateisystem aufgerufen wird. Application Insights misst die Dauer von Abhängigkeitsaufrufen und ob dies fehlschlägt oder nicht, und sammelt Informationen wie den Namen der Abhängigkeit. Sie können bestimmte Abhängigkeitsaufrufe untersuchen und sie mit Anforderungen und Ausnahmen korrelieren.

Automatisch nachverfolgte Abhängigkeiten

Dieser Abschnitt enthält Links zu Listen von Abhängigkeitsaufrufen, die automatisch als Abhängigkeiten erkannt werden, ohne dass zusätzliche Änderungen am Code Ihrer Anwendung erforderlich sind. Diese Abhängigkeiten werden in Application Insights in den Ansichten Anwendungsübersicht und Transaktionsdiagnose visualisiert.

Wenn Ihre Abhängigkeit nicht in der Liste enthalten ist, können Sie sie weiterhin manuell nachverfolgen, siehe Manuelles Nachverfolgen von Abhängigkeiten.

Eine Liste aller automatisch integrierten Abhängigkeiten finden Sie auf den sprachspezifischen Registerkarten in "Hinzufügen und Ändern von Azure Monitor OpenTelemetry" für .NET-, Java-, Node.js- und Python-Anwendungen.

Wie funktioniert die automatische Abhängigkeitsüberwachung?

Abhängigkeiten werden automatisch mithilfe einer der folgenden Techniken erfasst, je nach Telemetrieauflistungsmethode.

  • OpenTelemetry-Instrumentationsbibliotheken werden verwendet, um Abhängigkeiten wie HTTP-, SQL- und Azure SDK-Aufrufe automatisch zu erfassen. Diese Bibliotheken verbinden sich mit unterstützten Frameworks und Clientbibliotheken mithilfe DiagnosticSource oder gleichwertiger Mechanismen.

  • In unterstützten Umgebungen wie Azure App Services ist die automatische Instrumentierung standardmäßig verfügbar und aktiviert und fügt Telemetriesammler zur Laufzeit ohne Codeänderungen ein.

  • In anderen Umgebungen können Entwickler die Instrumentierung mithilfe der Azure.Monitor.OpenTelemetry.* -Pakete und OpenTelemetry-APIs manuell konfigurieren, um zu steuern, welche Abhängigkeiten nachverfolgt und wie sie erweitert oder gefiltert werden.

Manuelles Nachverfolgen von Abhängigkeiten

Sie können Abhängigkeiten manuell nachverfolgen, wenn die automatische Sammlung Ihre Anforderungen nicht erfüllt.

Tipp

Für neue Projekte empfehlen wir die Verwendung von OpenTelemetry für eine bessere Flexibilität und zukünftige Kompatibilität.

Informationen zum manuellen Nachverfolgen von Abhängigkeiten finden Sie unter Hinzufügen und Ändern von Azure Monitor OpenTelemetry für .NET-, Java-, Node.js- und Python-Anwendungen.

Hier finden Sie Abhängigkeitsdaten

Die folgenden Tools und Ansichten in Application Insights erleichtern das Untersuchen und Analysieren der Abhängigkeits-Telemetrie:

Ansichten BESCHREIBUNG
Anwendungsübersicht Bietet eine visuelle Darstellung der Abhängigkeiten Ihrer Anwendung und deren Beziehungen zu externen Diensten.
Transaktionsdiagnose Zeigt End-to-End-Transaktionsdetails an, die serverseitige Vorgänge mit Abhängigkeitsaufrufen korrelieren.
Browserregisterkarte in Fehlern und Leistungsansichten Hebt AJAX-Aufrufe von Clientbrowsern hervor.
Serverregisterkarte in Fehler- und Leistungsansichten Hier können Sie einen Drilldown in langsame oder fehlgeschlagene Serveranforderungen ausführen und verwandte Abhängigkeitsaufrufe überprüfen.

Beispiele für die Ablaufverfolgung von Anforderungen an Abhängigkeiten und fehlgeschlagene Anforderungen, die fehlgeschlagenen Aufrufen von Abhängigkeiten zugeordnet sind.
Azure Monitor-Protokolle Ermöglicht erweiterte Abfragen und Analysen zur Abhängigkeits-Telemetrie.

Beispiele zum Nachverfolgen von Abhängigkeiten mithilfe von KQL.

Diagnostizieren langsamer Anforderungen

Jedes Anforderungsereignis bezieht sich auf Abhängigkeitsaufrufe, Ausnahmen und andere Ereignisse, die während der Verarbeitung der Anforderung nachverfolgt werden. Wenn also einige Anforderungen schlecht abschneiden, können Sie herausfinden, ob dies an langsamen Antworten einer Abhängigkeit liegt.

Ablaufverfolgung von Anforderungen zu Abhängigkeiten

Wählen Sie links die Registerkarte Leistung und oben die Registerkarte Abhängigkeiten aus.

Wählen Sie unter Gesamt einen Abhängigkeitsnamen aus. Nachdem Sie eine Abhängigkeit ausgewählt haben, wird ein Diagramm mit der Verteilung der Dauer dieser Abhängigkeit angezeigt.

Screenshot: Geöffnete Registerkarte „Abhängigkeiten” zum Auswählen eines Abhängigkeitsnamens im Diagramm

Wählen Sie unten rechts die Schaltfläche Beispiele. Wählen Sie dann ein Beispiel aus, um die End-to-End-Transaktionsdetails anzuzeigen.

Screenshot: Auswahl eines Beispiels zum Anzeigen der End-to-End-Transaktionsdetails

Erstellen eines Profils Ihrer Livewebsite

Der .NET-Profiler verfolgt HTTP-Aufrufe zu Ihrer Livewebsite zurück und zeigt an, welche Funktionen im Code die meiste Zeit in Anspruch genommen haben.

Anforderungsfehler

Anforderungsfehler können auch fehlgeschlagenen Aufrufen von Abhängigkeiten zugeordnet werden.

Wählen Sie links die Registerkarte Fehler und dann oben die Registerkarte Abhängigkeiten aus.

Screenshot: Auswahl des Diagramms für fehlgeschlagene Anforderungen

Hier sehen Sie die Anzahl der fehlgeschlagenen Abhängigkeiten. Um weitere Informationen zu einem fehlgeschlagenen Vorkommen zu erhalten, wählen Sie in der unteren Tabelle einen Abhängigkeitsnamen aus. Wählen Sie unten rechts die Schaltfläche Abhängigkeiten aus, um die End-to-End-Transaktionsdetails anzuzeigen.

Protokolle (Analytics)

Sie können Abhängigkeiten in der Abfragesprache Kusto verfolgen. Hier sind einige Beispiele.

  • Suchen fehlgeschlagener Abhängigkeitsaufrufe:

    dependencies | where success != "True" | take 10
    
  • Suchen von AJAX-Aufrufen:

    dependencies | where client_Type == "Browser" | take 10
    
  • Suchen von mit Anforderungen verbundenen Abhängigkeitsaufrufen:

    dependencies
    | where timestamp > ago(1d) and  client_Type != "Browser"
    | join (requests | where timestamp > ago(1d))
        on operation_Id  
    
  • Suchen von mit Seitenaufrufen verbundenen AJAX-Aufrufen:

    dependencies
    | where timestamp > ago(1d) and  client_Type == "Browser"
    | join (browserTimings | where timestamp > ago(1d))
        on operation_Id
    

Open Source SDK

Wie jedes Application Insights SDK ist auch das Abhängigkeitserfassungsmodul Open Source. Lesen Sie den Code und tragen Sie dazu bei oder melden Sie Probleme im offiziellen GitHub-Repository.

Nächste Schritte