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.
U leert het volgende:
- Identificeer de prestaties van bewerkingen aan de serverzijde.
- Analyseer serverbewerkingen om de hoofdoorzaak van trage prestaties te bepalen.
- Identificeer de traagste bewerkingen aan de clientzijde.
- Analyseer details van paginaweergaven met behulp van querytaal.
Vereisten
Vereisten om deze zelfstudie te voltooien:
- 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 het Azure-portaal.
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 vaststellen of uw doorlopende ontwikkeling richten om de algehele prestaties van de toepassing te verbeteren.
Selecteer Application Insights en selecteer vervolgens uw abonnement.
Als u het deelvenster Prestaties wilt openen, selecteert u Prestaties in het menu Onderzoeken of selecteert u de grafiek reactietijd van de server.
In het scherm Prestaties ziet u 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, dus het effect van hun verbetering zou minimaal zijn.
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 enkele pieken zijn die het onderzoeken waard zijn. Als u ze verder wilt isoleren, vermindert u het tijdvenster van de grafiek.
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. De inzichtenkaart top 3 afhankelijkheden kan u in één oogopslag vertellen 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 transactiedetails weer te geven.
U kunt in één oogopslag zien dat de aanroep van de Azure-tabel Fabrikamaccount het meest 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 weer te geven.
Profiler helpt u 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 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.
De tracering toont de afzonderlijke gebeurtenissen voor elke bewerking, zodat u de hoofdoorzaak voor de duur van de algehele bewerking kunt diagnosticeren. Selecteer een van de belangrijkste voorbeelden met de langste duur.
Selecteer Dynamisch pad om het specifieke pad van gebeurtenissen te markeren die het meest bijdragen aan de totale duur van de bewerking. In dit voorbeeld ziet u dat de traagste aanroep afkomstig is van de
FabrikamFiberAzureStorage.GetStorageTableData
methode. Het deel dat de meeste tijd in beslag neemt, is deCloudTable.CreateIfNotExist
methode. Als deze coderegel wordt uitgevoerd telkens wanneer de functie wordt aangeroepen, worden onnodige netwerkoproep 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.De prestatietip boven aan het scherm ondersteunt de evaluatie dat de overmatige duur te maken heeft met wachten. Selecteer de wachtkoppeling voor documentatie over het interpreteren van de verschillende typen gebeurtenissen.
Selecteer Trace downloaden om de tracering te downloaden voor verdere analyse. U kunt deze gegevens bekijken met behulp van PerfView.
Logboekgegevens voor server gebruiken
Logboeken bieden een uitgebreide querytaal die u kunt gebruiken om alle gegevens te analyseren die worden verzameld door Application Insights. U kunt deze functie gebruiken om grondige analyses uit te voeren op aanvraag- en prestatiegegevens.
Ga terug naar het detailvenster van de bewerking en selecteer Weergeven in Logboeken (Analytics).
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.
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 potentiële verbeteringen aan clientonderdelen te identificeren en zelfs problemen met verschillende browsers of verschillende locaties te identificeren.
Selecteer Browser onder Onderzoeken en selecteer vervolgens Browserprestaties. U kunt ook Prestaties selecteren onder Onderzoeken en overschakelen naar het tabblad Browser door de wisselknop Server/Browser in de rechterbovenhoek te selecteren om het overzicht van de browserprestaties te openen. Deze weergave biedt een visueel overzicht van verschillende telemetrieën van uw toepassing vanuit het perspectief van de browser.
Selecteer een van de bewerkingsnamen, selecteer de knop Voorbeelden rechtsonder en selecteer vervolgens een bewerking. End-to-end transactiedetails worden aan de rechterkant geopend, 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.
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.
Ga terug naar de browsersamenvatting en selecteer Weergeven in Logboeken (Analyse).
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.