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. Fare clic su Visualizza dettagli per visualizzare i dettagli dell'operazione,Click View Details to see the details for the operation. incluso un diagramma di Gantt che mostra due dipendenze non riuscite che collettivamente hanno impiegato circa metà secondo per il completamento.This includes a Gantt chart that shows two failed dependencies which collectively took almost half of a second to complete. È possibile ottenere maggiori informazioni sull'analisi dei problemi di prestazioni completando l'esercitazione in Rilevare e diagnosticare i problemi di prestazioni con Azure Application Insights.You can find out more about analyzing performance issues by completing the tutorial Find and diagnose performance issues with Azure Application Insights.

    Dettagli delle richieste non riuscite

  6. 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. Fare clic sull'eccezione o sul conteggio Primi 3 tipi di eccezione per visualizzarne i dettagli.Click the exception or on the Top 3 exception types count to view its details. 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.

    Dettagli eccezione

Nota

Abilitare la versione di anteprima di "Unified details: E2E Transaction Diagnostics" (Dettagli unificati: diagnostica della transazione end-to-end) per visualizzare in un'unica vista tutti i relativi dati di telemetria sul lato server come richieste, dipendenze, eccezioni, tracce, eventi e così via.Enable the "Unified details: E2E Transaction Diagnostics" preview experience to see all related server-side telemetry like requests, dependencies, exceptions, traces, events etc. in a single full screen view.

Con l'anteprima abilitata è possibile visualizzare il tempo impiegato nelle chiamate di dipendenza, insieme a eventuali errori o eccezioni in un'esperienza unificata.With the preview enabled, you can see the time spent in dependency calls, along with any failures or exceptions in a unified experience. Per le transazioni tra componenti, il diagramma di Gantt e il riquadro dei dettagli consentono di diagnosticare rapidamente il componente, la dipendenza o l'eccezione che provoca il problema.For cross-component transactions, the Gantt chart along with the details pane can help you quickly diagnose the root-cause component, dependency or exception. È possibile espandere la sezione nella parte inferiore per visualizzare la sequenza temporale di tracce o eventi raccolti per il funzionamento del componente selezionato.You can expand the bottom section to see time-sequence of any traces or events collected for the selected component-operation. Altre informazioni sulla nuova esperienzaLearn more about the new experience

Diagnostica delle transazioni

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

Aggiungere un elemento di lavoroAdd work item

Se si connette Application Insights a un sistema di verifica come Visual Studio Team Services o GitHub, è possibile creare un elemento di lavoro direttamente da Application Insights.If you connect Application Insights to a tracking system such as Visual Studio Team Services or GitHub, you can create a work item directly from Application Insights.

  1. Tornare al pannello Proprietà eccezione in Application Insights.Return to the Exception Properties panel in Application Insights.
  2. Fare clic su Nuovo elemento di lavoro.Click New Work Item.
  3. Viene aperto il pannello Nuovo elemento di lavoro con i dettagli sull'eccezione già popolati.The New Work Item panel opens with details about the exception already populated. È possibile aggiungere eventuali informazioni aggiuntive prima di salvarlo.You can add any additional information before saving it.

    Nuovo elemento di lavoro

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.