Delen via


Afhankelijkheidstracering in Application Insights

Een afhankelijkheid is een onderdeel dat wordt aangeroepen door uw toepassing. Dit is doorgaans een service die wordt aangeroepen met behulp van HTTP, een database of een bestandssysteem. Application Insights meet de duur van afhankelijkheidsaanroepen en of deze al dan niet mislukt en verzamelt informatie zoals de naam van de afhankelijkheid. U kunt specifieke afhankelijkheidsaanroepen onderzoeken en deze correleren met aanvragen en uitzonderingen.

Automatisch bijgehouden afhankelijkheden

In deze sectie vindt u koppelingen naar lijsten met afhankelijkheidsaanroepen die automatisch worden gedetecteerd als afhankelijkheden, zonder dat er extra wijzigingen in de code van uw toepassing nodig zijn. Deze afhankelijkheden worden gevisualiseerd in de applicatiekaart van Application Insights en transactiediagnoses-weergaven.

Als uw afhankelijkheid zich niet in de lijst bevindt, kunt u deze nog steeds handmatig bijhouden. Zie Afhankelijkheden handmatig bijhouden.

Zie de taalspecifieke tabbladen in Azure Monitor OpenTelemetry toevoegen en wijzigen voor .NET-, Java-, Node.js- en Python-toepassingen voor een lijst met alle automatisch opgehaalde afhankelijkheden.

Hoe werkt automatische afhankelijkheidsbewaking?

Afhankelijkheden worden automatisch verzameld met behulp van een van de volgende technieken, afhankelijk van de methode voor het verzamelen van telemetrie.

  • OpenTelemetry-instrumentatiebibliotheken worden gebruikt om automatisch afhankelijkheden te verzamelen, zoals HTTP-, SQL- en Azure SDK-aanroepen. Deze bibliotheken worden gekoppeld aan ondersteunde frameworks en clientbibliotheken met behulp van DiagnosticSource of gelijkwaardige mechanismen.

  • In ondersteunde omgevingen zoals Azure App Services is automatische instrumentatie standaard beschikbaar en ingeschakeld, waarbij telemetrieverzamelaars tijdens runtime worden geïnjecteerd zonder codewijzigingen.

  • In andere omgevingen kunnen ontwikkelaars instrumentatie handmatig configureren met behulp van de pakketten Azure.Monitor.OpenTelemetry.* en OpenTelemetry-API's om te bepalen welke afhankelijkheden worden bijgehouden en hoe ze worden verrijkt of gefilterd.

Afhankelijkheden handmatig bijhouden

U kunt afhankelijkheden handmatig bijhouden wanneer automatische verzameling niet aan uw behoeften voldoet.

Aanbeveling

Voor nieuwe projecten raden we u aan OpenTelemetry te gebruiken voor betere flexibiliteit en toekomstige compatibiliteit.

Zie Azure Monitor OpenTelemetry toevoegen en wijzigen voor .NET-, Java-, Node.js- en Python-toepassingen voor meer informatie over het handmatig bijhouden van afhankelijkheden.

Waar kunt u afhankelijkheidsgegevens vinden

Met de volgende hulpprogramma's en weergaven in Application Insights kunt u eenvoudig afhankelijkheidstelemetrie verkennen en analyseren:

Weergaven Beschrijving
Toepassingsoverzicht Biedt een visuele weergave van de afhankelijkheden van uw toepassing en hun relaties met externe services.
Diagnostische gegevens voor transacties Geeft end-to-end transactiedetails weer, waarbij bewerkingen aan de serverzijde worden correleren met afhankelijkheidsaanroepen.
Tabblad Browser in fouten en prestatieweergaven Markeert AJAX-aanroepen vanuit clientbrowsers.
Servertabblad in fouten en prestatieweergaven Hiermee kunt u inzoomen op trage of mislukte serveraanvragen en gerelateerde afhankelijkheidsaanroepen inspecteren.

Zie voorbeelden voor het traceren van aanvragen naar afhankelijkheden en mislukte aanvragen die zijn gekoppeld aan mislukte aanroepen naar afhankelijkheden.
Azure Monitor-logboeken Hiermee kunt u geavanceerde query's en analyses uitvoeren op afhankelijkheidstelemetrie.

Zie voorbeelden voor het bijhouden van afhankelijkheden met behulp van KQL.

Diagnose trage verzoeken

Elke aanvraaggebeurtenis is gekoppeld aan de afhankelijkheidsaanroepen, uitzonderingen en andere gebeurtenissen die worden bijgehouden tijdens het verwerken van de aanvraag. Dus als sommige aanvragen slecht worden uitgevoerd, kunt u erachter komen of dit komt door trage reacties van een afhankelijkheid.

Traceren van aanvragen naar afhankelijkheden

Selecteer het tabblad Prestaties aan de linkerkant en selecteer het tabblad Afhankelijkheden bovenaan.

Selecteer een afhankelijkheidsnaam onder Algemeen. Nadat u een afhankelijkheid hebt geselecteerd, wordt er een grafiek weergegeven van de verdeling van de duur van die afhankelijkheid.

Schermopname van het tabblad Afhankelijkheden geopend om een afhankelijkheidsnaam in de grafiek te selecteren.

Selecteer de knop Voorbeelden rechtsonder. Selecteer vervolgens een voorbeeld om de details van de end-to-end transactie te bekijken.

Schermopname van het selecteren van een voorbeeld om de end-to-end transactiegegevens te bekijken.

Uw live website profileren

De .NET Profiler traceert HTTP-aanroepen naar uw livesite en toont u de functies in uw code die het langst duurde.

Mislukte aanvragen

Mislukte aanvragen kunnen ook worden gekoppeld aan mislukte aanroepen naar afhankelijkheden.

Selecteer het tabblad Fouten aan de linkerkant en selecteer vervolgens het tabblad Afhankelijkheden bovenaan.

Schermopname van het selecteren van de grafiek met mislukte aanvragen.

Hier ziet u het aantal mislukte afhankelijkheden. Als u meer informatie wilt over een mislukte gebeurtenis, selecteert u een afhankelijkheidsnaam in de onderste tabel. Selecteer de knop Afhankelijkheden rechtsonder om de details van de end-to-end transactie weer te geven.

Logboeken (analyse)

U kunt afhankelijkheden bijhouden in de Kusto-querytaal. Hieronder vindt u enkele voorbeelden.

  • Zoek eventuele mislukte afhankelijkheidsaanroepen:

    dependencies | where success != "True" | take 10
    
  • Ajax-aanroepen zoeken:

    dependencies | where client_Type == "Browser" | take 10
    
  • Afhankelijkheidsaanroepen zoeken die zijn gekoppeld aan aanvragen:

    dependencies
    | where timestamp > ago(1d) and  client_Type != "Browser"
    | join (requests | where timestamp > ago(1d))
        on operation_Id  
    
  • Ajax-aanroepen zoeken die zijn gekoppeld aan paginaweergaven:

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

Opensource-SDK

Net als elke Application Insights SDK is de module voor het verzamelen van afhankelijkheden ook open source. Lees en bijdragen aan de code of meld problemen in de officiële GitHub-opslagplaats.

Volgende stappen