Rilevare e diagnosticare le eccezioni di runtime con Azure Application InsightsFind and diagnose run-time exceptions with Azure Application Insights

Azure Application Insights raccoglie i dati di telemetria dall'applicazione per consentire di identificare e diagnosticare le eccezioni di runtime.Azure Application Insights collects telemetry from your application to help identify and diagnose run-time exceptions. Questa esercitazione illustra l'esecuzione di questo processo con l'applicazione in uso.This tutorial takes you through this process with your application. Si apprenderà come:You learn how to:

  • Modificare il progetto per abilitare il rilevamento delle eccezioniModify your project to enable exception tracking
  • Identificare le eccezioni per i diversi componenti dell'applicazioneIdentify exceptions for different components of your application
  • Visualizzare i dettagli di un'eccezioneView details of an exception
  • Scaricare uno snapshot dell'eccezione in Visual Studio per il debugDownload a snapshot of the exception to Visual Studio for debugging
  • Analizzare i dettagli delle richieste non riuscite usando il linguaggio di queryAnalyze details of failed requests using query language
  • Creare un nuovo elemento di lavoro per correggere il codice non correttoCreate a new work item to correct the faulty code

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.

Analizzare gli erroriAnalyze failures

Application Insights raccoglie gli eventuali errori nell'applicazione e consente di visualizzarne la frequenza in diverse operazioni in modo da concentrare l'attenzione su quelli con il maggiore impatto.Application Insights collects any failures in your application and lets you view their frequency across different operations to help you focus your efforts on those with the highest impact. È quindi possibile esaminare i dettagli di tali errori per identificarne la causa radice.You can then drill down on details of these failures to identify root cause.

  1. Selezionare Application Insights e quindi la sottoscrizione in uso.Select Application Insights and then your subscription.
  2. Per aprire il pannello Errori, selezionare Errori nel menu Analisi oppure fare clic sul grafico Richieste non riuscite.To open the Failures panel either select Failures under the Investigate menu or click the Failed requests graph.

    Richieste non riuscite

  3. Il pannello Richieste non riuscite mostra il conteggio delle richieste non riuscite e il numero di utenti interessati per ogni operazione per l'applicazione.The Failed requests panel shows the count of failed requests and the number of users affected for each operation for the application. Ordinando queste informazioni in base all'utente è possibile identificare i problemi che influiscono maggiormente sugli utenti.By sorting this information by user you can identify those failures that most impact users. In questo esempio le operazioni GET Employees/Create e GET Customers/Details sono probabili candidati per l'analisi a causa del numero elevato di errori e degli utenti interessati.In this example, the GET Employees/Create and GET Customers/Details are likely candidates to investigate because of their large number of failures and impacted users. Quando si seleziona un'operazione, nel riquadro di destra vengono mostrate ulteriori informazioni su di essa.Selecting an operation shows further information about this operation in the right panel.

    Pannello Richieste non riuscite

  4. Ridurre l'intervallo di tempo per ingrandire il periodo in cui la frequenza degli errori mostra un picco.Reduce the time window to zoom in on the period where the failure rate shows a spike.

    Finestra Richieste non riuscite

  5. Vedere i campioni correlati facendo clic sul pulsante con il numero di risultati filtrati.See the related samples by clicking on the button with the number of filtered results. I campioni "consigliati" contengono i dati di telemetria correlati di tutti i componenti, anche se il campionamento potrebbe non essere stato attivo in alcun componente.The "suggested" samples have related telemetry from all components, even if sampling may have been in effect in any of them. Fare clic su un risultato della ricerca per visualizzare i dettagli dell'errore.Click on a search result to see the details of the failure.

    Campioni di richieste non riuscite

  6. I dettagli della richiesta non riuscita vengono illustrati nel diagramma di Gantt che mostra che si sono verificati due errori di dipendenza in questa transazione, attribuiti a oltre il 50% della durata totale della transazione.The details of the failed request shows the Gantt chart which shows that there were two dependency failures in this transaction, which also attributed to over 50% of the total duration of the transaction. Questa esperienza presenta tutti i dati di telemetria, in tutti i componenti di un'applicazione distribuita correlati a questo ID operazione.This experience presents all telemetry, across components of a distributed application that are related to this operation ID. Altre informazioni sulla nuova esperienza.Learn more about the new experience. È possibile selezionare uno degli elementi per visualizzarne i dettagli sul lato destro.You can select any of the items to see its details on the right side.

    Dettagli richieste non riuscite

  7. I dettagli delle operazioni rivelano inoltre un'eccezione di tipo FormatException che sembra aver causato l'errore.The operations detail also shows a FormatException which appears to have caused the failure. Si può notare che il problema è causato da un codice postale non valido.You can see that it's due to an invalid zip code. È possibile aprire lo snapshot di debug per visualizzare le informazioni di debug a livello di codice in Visual Studio.You can open the debug snapshot to see code level debug information in Visual Studio.

    Dettagli eccezione

Identificare il codice responsabile dell'erroreIdentify failing code

Il debugger di snapshot raccoglie gli snapshot delle eccezioni più frequenti nell'applicazione per agevolare la diagnosi della causa radice nell'ambiente di produzione.The Snapshot Debugger collects snapshots of the most frequent exceptions in your application to assist you in diagnosing its root cause in production. È possibile visualizzare gli snapshot di debug nel portale per vedere lo stack di chiamate e ispezionare le variabili in ogni stack frame di chiamate.You can view debug snapshots in the portal to see the call stack and inspect variables at each call stack frame. È quindi possibile eseguire il debug del codice sorgente scaricando lo snapshot e aprendolo in Visual Studio 2017.You can then debug the source code by downloading the snapshot and opening it in Visual Studio 2017.

  1. Nelle proprietà dell'eccezione fare clic su Apri snapshot di debug.In the properties of the exception, click Open debug snapshot.
  2. Verrà aperto il pannello Snapshot di debug con lo stack di chiamate per la richiesta.The Debug Snapshot panel opens with the call stack for the request. Fare clic su uno dei metodi per visualizzare i valori di tutte le variabili locali al momento della richiesta.Click any method to view the values of all local variables at the time of the request. A partire dal primo metodo in questo esempio, è possibile vedere le variabili locali che non hanno alcun valore.Starting from the top method in this example, we can see local variables that have no value.

    Snapshot di debug

  3. La prima chiamata con valori validi è ValidZipCode e si può notare che è stato fornito un codice postale contenente lettere che non può essere convertito in un numero intero.The first call that has valid values is ValidZipCode, and we can see that a zip code was provided with letters that isn't able to be translated into an integer. Si tratta dell'errore nel codice che deve essere corretto.This appears to be the error in the code that needs to be corrected.

    Snapshot di debug

  4. Per scaricare questo snapshot in Visual Studio dove è possibile individuare il codice effettivo che deve essere corretto, fare clic su Download Snapshot (Scarica snapshot).To download this snapshot into Visual Studio where we can locate the actual code that needs to be corrected, click Download Snapshot.

  5. Lo snapshot viene caricato in Visual Studio.The snapshot is loaded into Visual Studio.
  6. È ora possibile eseguire una sessione di debug in Visual Studio per identificare rapidamente la riga di codice che ha causato l'eccezione.You can now run a debug session in Visual Studio that quickly identifies the line of code that caused the exception.

    Eccezione nel codice

Usare i dati di analisiUse analytics data

Tutti i dati raccolti da Application Insights sono archiviati in Log Analytics di Azure, che fornisce un linguaggio di query avanzato per analizzare i dati in diversi modi.All data collected by Application Insights is stored in Azure Log Analytics, which provides a rich query language that allows you to analyze the data in a variety of ways. È possibile usare questi dati per analizzare le richieste che hanno generato l'eccezione che si sta esaminando.We can use this data to analyze the requests that generated the exception we're researching.

  1. Fare clic sulle informazioni di CodeLens sopra il codice per visualizzare i dati di telemetria forniti da Application Insights.Click the CodeLens information above the code to view telemetry provided by Application Insights.

    Codice

  2. Fare clic su Analizza l'impatto per aprire Analytics in Application Insights,Click Analyze impact to open Application Insights Analytics. che viene popolato con diverse query che forniscono informazioni dettagliate sulle richieste non riuscite, ad esempio gli utenti, le aree e i browser interessati.It's populated with several queries that provide details on failed requests such as impacted users, browsers, and regions.

    AnalisiAnalytics

Passaggi successiviNext steps

Dopo avere appreso come identificare le eccezioni di runtime, passare all'esercitazione successiva per imparare a identificare e diagnosticare i problemi di prestazioni.Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to identify and diagnose performance issues.