Prestatieproblemen met Application Insights zoeken en diagnosticeren

Azure Application Insights verzamelt telemetrie van uw toepassing om de werking en prestaties te analyseren. U kunt deze informatie gebruiken om problemen te identificeren die zich kunnen voordoen of om te identificeren welke verbeteringen in de toepassing het meeste effect zouden hebben voor gebruikers. Deze zelfstudie leidt u door het proces van het analyseren van de prestaties van zowel de servercomponenten van uw applicatie als het perspectief van de client.

In deze zelfstudie leert u procedures om het volgende te doen:

  • De prestaties van bewerkingen aan de serverzijde identificeren.
  • Analyseer serverbewerkingen om de hoofdoorzaak van trage prestaties te bepalen.
  • Identificeer de traagste bewerkingen aan de clientzijde.
  • Details van paginaweergaven analyseren met behulp van querytaal.

Vereisten

Vereisten voor het voltooien van deze zelfstudie:

  • Installeer Visual Studio 2019 met de volgende workloads:
    • ASP.NET-ontwikkeling en webontwikkeling
    • Azure-ontwikkeling
  • Een .NET-toepassing implementeren in Azure en de Application Insights SDK inschakelen
  • Schakel de Application Insights-profiler in voor uw toepassing.

Aanmelden bij Azure

Meld u aan bij de Azure-portal.

Trage serverbewerkingen identificeren

Application Insights verzamelt prestatiedetails over de verschillende bewerkingen in uw toepassing. Door de bewerkingen met de langste duur te identificeren, kunt u potentiële problemen diagnosticeren of uw doorlopende ontwikkeling toepassen om de algehele prestaties van de toepassing te verbeteren.

  1. Selecteer Application Insights en selecteer vervolgens uw abonnement.

  2. Als u het deelvenster Prestaties wilt openen, selecteert u Prestaties in het menu Onderzoeken of selecteert u de grafiek Reactietijd van de server.

    Schermopname van de weergave Prestaties.

  3. Het scherm Prestaties toont het aantal en de gemiddelde duur van elke bewerking voor de toepassing. U kunt deze informatie gebruiken om de bewerkingen te identificeren die het meest van invloed zijn op gebruikers. In dit voorbeeld zijn GET Customers/Details en GET Home/Index goede kandidaten om te onderzoeken, vanwege hun relatief lange duur en hoge aantal aanroepen. Andere bewerkingen hebben mogelijk een hogere duur, maar werden zelden aangeroepen, zodat het effect van hun verbetering minimaal zou zijn.

    Schermopname van het deelvenster Prestatieserver.

  4. In de grafiek ziet u nu de gemiddelde duur van de geselecteerde bewerkingen gedurende een bepaalde periode. U kunt overschakelen naar het 95e percentiel om de prestatieproblemen te zoeken. Voeg de bewerkingen toe waarin u geïnteresseerd bent door ze vast te maken aan de grafiek. In de grafiek ziet u dat er een aantal pieken zijn die het onderzoeken waard zijn. Als u ze verder wilt isoleren, verkleint u het tijdvenster van de grafiek.

    Schermopname van vastmaken bewerkingen.

  5. In het prestatiedeelvenster rechts ziet u de verdeling van de duur voor verschillende aanvragen voor de geselecteerde bewerking. Maak het venster kleiner om bij ongeveer het 95e percentiel te beginnen. Op de kaart Inzichten in top 3 afhankelijkheden kunt u in één oogopslag zien dat de externe afhankelijkheden waarschijnlijk bijdragen aan de trage transacties. Selecteer de knop met het aantal voorbeelden om een lijst met de voorbeelden weer te geven. Selecteer vervolgens een voorbeeld om de transactiedetails weer te geven.

  6. U ziet in één oogopslag dat de aanroep van de Azure-tabel Fabrikamaccount het meeste bijdraagt aan de totale duur van de transactie. U kunt ook zien dat deze is mislukt vanwege een uitzondering. Selecteer een item in de lijst om de details aan de rechterkant te zien.

    Schermopname van de end-to-end-transactiedetails van de bewerking.

  7. De Profiler helpt verder te gaan met diagnostische gegevens op codeniveau door de werkelijke code weer te geven die is uitgevoerd voor de bewerking en de tijd die nodig is voor elke stap. Sommige bewerkingen hebben mogelijk geen tracering omdat de Profiler periodiek wordt uitgevoerd. Na verloop van tijd moeten meer bewerkingen traceringen hebben. Als u de Profiler voor de bewerking wilt starten, selecteert u Profiler-traceringen.

  8. De tracering toont de afzonderlijke gebeurtenissen voor elke bewerking, zodat u de hoofdoorzaak voor de duur van de algehele bewerking kunt vaststellen. Selecteer een van de belangrijkste voorbeelden met de langste duur.

  9. Selecteer Dynamisch pad om het specifieke pad met gebeurtenissen te markeren die het meest bijdragen aan de totale duur van de bewerking. In dit voorbeeld ziet u dat de langzaamste aanroep afkomstig is van de FabrikamFiberAzureStorage.GetStorageTableData methode. Het onderdeel dat de meeste tijd in beslag neemt, is de CloudTable.CreateIfNotExist methode. Als deze regel code wordt uitgevoerd telkens wanneer de functie wordt aangeroepen, worden onnodige netwerkoproepen en CPU-resources verbruikt. De beste manier om uw code op te lossen, is door deze regel in een opstartmethode te plaatsen die slechts eenmaal wordt uitgevoerd.

    Schermopname met details van Profiler.

  10. De prestatietip boven aan het scherm ondersteunt de beoordeling dat de overmatige duur het gevolg is van wachten. Selecteer de koppeling voor documentatie over het interpreteren van de verschillende typen gebeurtenissen.

    Schermopname van een prestatietip.

  11. Voor verdere analyse selecteert u Trace downloaden om de tracering te downloaden. U kunt deze gegevens weergeven met behulp van PerfView.

Logboekgegevens voor server gebruiken

Logboeken bieden een uitgebreide querytaal die u kunt gebruiken om alle gegevens te analyseren die door Application Insights zijn verzameld. U kunt deze functie gebruiken om een grondige analyse uit te voeren op aanvraag en prestatiegegevens.

  1. Ga terug naar het detailvenster van de bewerking en selecteer LogboekpictogramWeergave in Logboeken (Analyse).

  2. Het scherm Logboeken wordt geopend met een query voor elk van de weergaven in het deelvenster. U kunt deze query’s zó uitvoeren, of ze aanpassen aan uw behoeften. De eerste query laat de duur van deze bewerking gedurende een bepaalde periode zien.

    Schermopname van een logboekquery.

Trage clientbewerkingen identificeren

Naast het identificeren van serverprocessen om te optimaliseren, kan Application Insights ook het perspectief van clientbrowsers analyseren. Deze informatie kan u helpen bij het identificeren van mogelijke verbeteringen in clientonderdelen en zelfs bij het identificeren van problemen met verschillende browsers of verschillende locaties.

  1. Selecteer Browser onder Onderzoeken en selecteer vervolgens Browserprestaties. U kunt ook Prestaties selecteren onder Onderzoeken en naar het tabblad Browser gaan door in de rechterbovenhoek de wisselknop Server/Browser te selecteren om het prestatieoverzicht van de browser te openen. Deze weergave biedt een visueel overzicht van verschillende telemetrieën van uw toepassing vanuit het perspectief van de browser.

    Schermopname van het browseroverzicht.

  2. Selecteer een van de bewerkingsnamen, selecteer de knop Voorbeelden rechtsonder en selecteer vervolgens een bewerking. End-to-end transactiedetails worden geopend aan de rechterkant, waar u de eigenschappen van de paginaweergave kunt bekijken. U kunt details bekijken van de client die de pagina aanvraagt, inclusief het type browser en de locatie ervan. Deze informatie kan u helpen bepalen of er prestatieproblemen zijn die te maken hebben met specifieke typen clients.

    Schermopname van eigenschappen van paginaweergave.

Logboekgegevens voor client gebruiken

Net als de gegevens die worden verzameld voor serverprestaties, maakt Application Insights alle clientgegevens beschikbaar voor grondige analyse met behulp van logboeken.

  1. Ga terug naar het browseroverzicht en selecteer LogboekenpictogramWeergave in Logboeken (Analyse).

  2. Het scherm Logboeken wordt geopend met een query voor elk van de weergaven in het deelvenster. De eerste query laat de duur zien van verschillende paginaweergaven gedurende een bepaalde periode.

    Schermopname van het scherm Logboeken.