Rilevare e diagnosticare i problemi di prestazioni con Azure Application InsightsFind and diagnose performance issues with Azure Application Insights

Azure Application Insights raccoglie i dati di telemetria dall'applicazione per consentire di analizzarne il funzionamento e le prestazioni.Azure Application Insights collects telemetry from your application to help analyze its operation and performance. È possibile usare queste informazioni per identificare i problemi che potrebbero verificarsi o per individuare i miglioramenti da apportare all'applicazione che potrebbero influire maggiormente sugli utenti.You can use this information to identify problems that may be occurring or to identify improvements to the application that would most impact users. Questa esercitazione illustra il processo di analisi delle prestazioni sia dei componenti server dell'applicazione che dalla prospettiva del client.This tutorial takes you through the process of analyzing the performance of both the server components of your application and the perspective of the client. Si apprenderà come:You learn how to:

  • Identificare le prestazioni delle operazioni sul lato serverIdentify the performance of server-side operations
  • Analizzare le operazioni del server per determinare la causa radice del rallentamento delle prestazioniAnalyze server operations to determine the root cause of slow performance
  • Identificare le operazioni con maggiori rallentamenti sul lato clientIdentify slowest client-side operations
  • Analizzare i dettagli delle visualizzazioni pagina usando il linguaggio di queryAnalyze details of page views using query language

PrerequisitiPrerequisites

Per completare questa esercitazione:To complete this tutorial:

Accedere ad AzureLog in to Azure

Accedere al portale di Azure all'indirizzo https://portal.azure.com.Log in to the Azure portal at https://portal.azure.com.

Identificare le operazioni del server con maggiori rallentamentiIdentify slow server operations

Application Insights raccoglie i dettagli sulle prestazioni per le diverse operazioni nell'applicazione.Application Insights collects performance details for the different operations in your application. Identificando le operazioni con la durata maggiore, è possibile diagnosticare potenziali problemi o supportare meglio le attività di sviluppo continuative per migliorare le prestazioni complessive dell'applicazione.By identifying those operations with the longest duration, you can diagnose potential problems or best target your ongoing development to improve the overall performance of the application.

  1. Selezionare Application Insights e quindi selezionare la sottoscrizione in uso.Select Application Insights and then select your subscription.
  2. Per aprire il pannello Prestazioni, selezionare Prestazioni nel menu Analisi oppure fare clic sul grafico Tempo di risposta del server.To open the Performance panel either select Performance under the Investigate menu or click the Server Response Time graph.

    Prestazioni

  3. Il pannello Prestazioni mostra il conteggio e la durata media di ogni operazione per l'applicazione.The Performance panel shows the count and average duration of each operation for the application. È possibile usare queste informazioni per identificare le operazioni che influiscono maggiormente sugli utenti.You can use this information to identify those operations that most impact users. In questo esempio le operazioni GET Customers/Details e GET Home/Index sono probabili candidati per l'analisi a causa della durata e del numero di chiamate relativamente elevati.In this example, the GET Customers/Details and GET Home/Index are likely candidates to investigate because of their relatively high duration and number of calls. Altre operazioni potrebbero avere una durata maggiore ma sono state chiamate raramente, pertanto l'effetto del loro miglioramento sarebbe minimo.Other operations may have a higher duration but were rarely called, so the effect of their improvement would be minimal.

    Pannello Prestazioni

  4. Il grafico mostra attualmente la durata media delle operazioni selezionate nel tempo.The graph currently shows the average duration of the selected operations over time. È possibile passare al 95° percentile per trovare i problemi di prestazioni.You can switch to the 95th percentile to find the performance issues. Aggiungere le operazioni a cui si è interessati aggiungendole al grafico.Add the operations that you're interested in by pinning them to the graph. Quest'ultimo indica la presenza di alcuni picchi che sarebbe utile analizzare.This shows that there are some peaks worth investigating. È possibile isolarli ulteriormente riducendo l'intervallo di tempo del grafico.Isolate this further by reducing the time window of the graph.

    Aggiungere operazioni

  5. Il pannello delle prestazioni a destra illustra la distribuzione delle durate per le diverse richieste per l'operazione selezionata.The performance panel on the right shows distribution of durations for different requests for the selected operation. Ridurre l'intervallo di tempo per l'avvio al 95° percentile circa.Reduce the window to start around the 95th percentile. La scheda con le informazioni dettagliate "3 dipendenze più frequenti" consente di verificare immediatamente che le dipendenze esterne stanno contribuendo al rallentamento delle transazioni.The "Top 3 dependencies" insights card, can tell you at a glance that the external dependencies are likely contributing to the slow transactions. Fare clic sul pulsante con il numero di campioni per visualizzare un elenco di campioni.Click on the button with number of samples to see a list of the samples. È quindi possibile selezionare qualsiasi campione per visualizzare i dettagli della transazione.You can then select any sample to see transaction details.

    Distribuzione della durata

  6. È possibile verificare immediatamente che la chiamata alla tabella di Azure Fabrikamaccount sta contribuendo più di tutte alla durata totale della transazione.You can see at a glance that the call to Fabrikamaccount Azure Table is contributing most to the total duration of the transaction. Noterete anche che un'eccezione ne ha causato l'esito negativo.You can also see that an exception caused it to fail. È possibile fare clic su qualsiasi elemento nell'elenco per visualizzarne i dettagli sul lato destro.You can click on any item in the list to see its details on the right side. Altre informazioni sull'esperienza di diagnostica delle transazioniLearn more about the transaction diagnostics experience

    Dettagli dell'operazione

  7. Il Profiler consente di analizzare più a fondo il problema con la diagnostica a livello di codice mostrando il codice effettivo che è stato eseguito per l'operazione e il tempo richiesto per ogni passaggio.The Profiler helps get further with code level diagnostics by showing the actual code that ran for the operation and the time required for each step. Alcune operazioni potrebbero non avere una traccia dal momento che il profiler viene eseguito periodicamente.Some operations may not have a trace since the profiler runs periodically. Nel corso del tempo dovrebbero essere disponibili tracce per più operazioni.Over time, more operations should have traces. Per avviare il profiler per l'operazione, fare clic su Tracce Profiler.To start the profiler for the operation, click Profiler traces.

  8. La traccia mostra i singoli eventi per ogni operazione, in modo da poter diagnosticare la causa radice per la durata dell'operazione complessiva.The trace shows the individual events for each operation so you can diagnose the root cause for the duration of the overall operation. Fare clic su uno dei primi esempi, che hanno una durata maggiore.Click one of the top examples, which have the longest duration.
  9. Fare clic su Mostra percorso critico per evidenziare il percorso specifico degli eventi che contribuiscono maggiormente alla durata totale dell'operazione.Click Show Hot Path to highlight the specific path of events that most contribute to the total duration of the operation. In questo esempio è possibile vedere che la chiamata più lenta proviene dal metodo FabrikamFiberAzureStorage.GetStorageTableData.In this example, you can see that the slowest call is from FabrikamFiberAzureStorage.GetStorageTableData method. La parte che richiede più tempo è il metodo CloudTable.CreateIfNotExist.The part that takes most time is the CloudTable.CreateIfNotExist method. Se questa riga di codice viene eseguita ogni volta che viene chiamata la funzione, verranno usate chiamate di rete e risorse della CPU non necessarie.If this line of code is executed every time the function gets called, unnecessary network call and CPU resource will be consumed. Il modo migliore per correggere il codice è inserire la linea in un metodo di avvio che si esegue solo una volta.The best way to fix your code is to put this line in some startup method that only executes once.

    Dettagli del profiler

  10. Il Suggerimento per le prestazioni nella parte superiore della schermata supporta la valutazione che la durata eccessiva è dovuta all'attesa.The Performance Tip at the top of the screen supports the assessment that the excessive duration is due to waiting. Fare clic sul collegamento in attesa per la documentazione sull'interpretazione dei diversi tipi di eventi.Click the waiting link for documentation on interpreting the different types of events.

    Suggerimento per le prestazioni

  11. Per un'ulteriore analisi, è possibile fare clic su Scarica la traccia ETL per scaricare la traccia in Visual Studio.For further analysis, you can click Download .etl trace to download the trace in to Visual Studio.

Usare i dati di analisi per il serverUse analytics data for server

Analytics in Application Insights fornisce un linguaggio di query avanzato che consente di analizzare tutti i dati raccolti da Application Insights.Application Insights Analytics provides a rich query language that allows you to analyze all data collected by Application Insights. È possibile usare questo strumento per eseguire analisi approfondite sui dati delle richieste e delle prestazioni.You can use this to perform deep analysis on request and performance data.

  1. Tornare al pannello con i dettagli dell'operazione e fare clic sul pulsante Analytics.Return to the operation detail panel and click the Analytics button.

    Pulsante Analytics

  2. Verrà aperta la finestra di Analytics in Application Insights con una query per ognuna delle visualizzazioni nel pannello.Application Insights Analytics opens with a query for each of the views in the panel. È possibile eseguire queste query così come sono oppure modificarle in base alle proprie esigenze.You can run these queries as they are or modify them for your requirements. La prima query mostra la durata per questa operazione nel corso del tempo.The first query shows the duration for this operation over time.

    Analytics

Identificare le operazioni del client con maggiori rallentamentiIdentify slow client operations

Oltre a identificare i processi server da ottimizzare, Application Insights è in grado di analizzare il punto di vista dei browser client.In addition to identifying server processes to optimize, Application Insights can analyze the perspective of client browsers. Ciò consente di identificare i possibili miglioramenti per i componenti client, oltre a rilevare i problemi relativi a browser o posizioni diverse.This can help you identify potential improvements to client components and even identify issues with different browsers or different locations.

  1. Selezionare Browser in Analisi per aprire il riepilogo del browser.Select Browser under Investigate to open the browser summary. Verrà fornito un riepilogo visivo delle varie telemetrie dell'applicazione dalla prospettiva del browser.This provides a visual summary of various telemetries of your application from the perspective of the browser.

    Riepilogo del browser

  2. Scorrere verso il basso fino a Quali sono le pagine in cui sono stati riscontrati maggiori rallentamenti?,Scroll down to What are my slowest pages?. dove è possibile visualizzare un elenco delle pagine nell'applicazione che hanno richiesto maggior tempo per il caricamento nei client.This shows a list of the pages in your application that have taken the longest time for clients to load. Queste informazioni possono essere usate per classificare le pagine con l'impatto più significativo per l'utente.You can use this information to prioritize those pages that have the most significant impact on the user.

  3. Fare clic su una delle pagine per aprire il pannello Visualizzazione pagina.Click one of the pages to open the Page view panel. In questo esempio la pagina /FabrikamProd mostra una durata media eccessiva.In the example, the /FabrikamProd page is showing an excessive average duration. Il pannello Visualizzazione pagina fornisce informazioni dettagliate su questa pagina, inclusa una scomposizione dei diversi intervalli di durata.The Page view panel provides details about this page including a breakdown of different duration ranges.

    Visualizzazione pagina

  4. Fare clic sulla durata maggiore per esaminare i dettagli di queste richieste.Click the highest duration to inspect details of these requests. Quindi fare clic sulla singola richiesta per visualizzare i dettagli del client che richiede la pagina, inclusi il tipo di browser e il relativo percorso.Then click the individual request to view details of the client requesting the page including the type of browser and its location. Queste informazioni possono risultare utili per determinare la presenza di problemi di prestazioni correlati a specifici tipi di client.This information can assist you in determining whether there are performance issues related to particular types of clients.

    Dettagli della richiesta

Usare i dati di analisi per il clientUse analytics data for client

Come per i dati raccolti per le prestazioni del server, Application Insights rende disponibili tutti i dati del client per un'analisi approfondita con Analytics.Like the data collected for server performance, Application Insights makes all client data available for deep analysis using Analytics.

  1. Tornare al riepilogo del browser e fare clic sull'icona Analytics.Return to the browser summary and click the Analytics icon.

    Icona Analytics

  2. Verrà aperta la finestra di Analytics in Application Insights con una query per ognuna delle visualizzazioni nel pannello.Application Insights Analytics opens with a query for each of the views in the panel. La prima query mostra la durata per le diverse visualizzazioni pagina nel corso del tempo.The first query shows the duration for different page views over time.

    Analytics

  3. Smart Diagnostics è una funzionalità di Analytics in Application Insights che identifica i modelli univoci nei dati.Smart Diagnostics is a feature of Application Insights Analytics that identifies unique patterns in the data. Quando si fa clic sul punto di Smart Diagnostics nel grafico a linee, la stessa query viene eseguita senza i record che hanno causato l'anomalia.When you click the Smart Diagnostics dot in the line chart, the same query is run without the records that caused the anomaly. I dettagli di questi record vengono visualizzati nella sezione dei commenti della query, in modo da identificare le proprietà di tali visualizzazioni pagina che causano la durata eccessiva.Details of those records are shown in the comment section of the query so you can identify the properties of those page views that are causing the excessive duration.

    Smart Diagnostics

Passaggi successiviNext steps

Dopo avere appreso come identificare i problemi di prestazioni, passare all'esercitazione successiva per imparare a creare avvisi in risposta agli errori.Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to create alerts in response to failures.