Monitorare le prestazioni di applicazioni WebMonitor performance in web applications

Questo prodotto consente di accertarsi che le prestazioni della propria applicazione siano ottimali e di scoprire rapidamente eventuali errori.Make sure your application is performing well, and find out quickly about any failures. Application Insights rileverà eventuali eccezioni e problemi relativi alle prestazioni e aiuterà a individuare e diagnosticare le cause principali.Application Insights will tell you about any performance issues and exceptions, and help you find and diagnose the root causes.

Application Insights può monitorare sia le applicazioni web Java e ASP.NET che i servizi, i servizi WCF.Application Insights can monitor both Java and ASP.NET web applications and services, WCF services. Possono essere ospitati in locale, su macchine virtuali o come siti Web di Microsoft Azure.They can be hosted on-premises, on virtual machines, or as Microsoft Azure websites.

Sul lato client Application Insights può acquisire dati di telemetria da pagine Web e da un'ampia gamma di dispositivi, tra cui le app per iOS e Android e di Windows Store.On the client side, Application Insights can take telemetry from web pages and a wide variety of devices including iOS, Android, and Windows Store apps.

Nota

È ora disponibile una nuova funzionalità per la ricerca delle pagine a basse prestazioni nell'applicazione Web.We have made a new experience available for finding slow performing pages in your web application. Se non si ha accesso alla funzionalità, abilitarla configurando le opzioni di anteprima usando il pannello Anteprima.If you don't have access to it, enable it by configuring your preview options with the Preview blade. Leggere le informazioni su questa nuova funzionalità in Individuare e risolvere i colli di bottiglia delle prestazioni con l'analisi interattiva delle prestazioni.Read about this new experience in Find and fix performance bottlenecks with the interactive Performance investigation.

Configurare il monitoraggio delle prestazioniSet up performance monitoring

Se Application Insights non è stato ancora aggiunto al progetto (vale a dire, se ApplicationInsights.config non è presente), scegliere uno dei modi seguenti per iniziare:If you haven't yet added Application Insights to your project (that is, if it doesn't have ApplicationInsights.config), choose one of these ways to get started:

Esplorare le metriche delle prestazioniExploring performance metrics

Nel portale di Azure, passare alla risorsa di Application Insights impostata per la propria applicazione.In the Azure portal, browse to the Application Insights resource that you set up for your application. Il pannello della panoramica mostra i dati delle prestazioni di base:The overview blade shows basic performance data:

Fare clic su un riquadro qualsiasi per visualizzare altri dettagli e per vedere i risultati relativi a un periodo più lungo.Click any chart to see more detail, and to see results for a longer period. Ad esempio, fare clic sul riquadro delle richieste e quindi selezionare un intervallo di tempo:For example, click the Requests tile and then select a time range:

Fare clic per visualizzare più dati e selezionare un intervallo di tempo

Fare clic su un grafico per scegliere quali metriche visualizzare oppure aggiungere un nuovo grafico e selezionarne le metriche:Click a chart to choose which metrics it displays, or add a new chart and select its metrics:

Fare clic su un grafico per scegliere le metriche

Nota

Deselezionare tutte le metriche per visualizzare la selezione completa disponibile.Uncheck all the metrics to see the full selection that is available. Le metriche sono suddivise in gruppi; quando si seleziona qualsiasi membro di un gruppo, vengono visualizzati solo gli altri membri di quel gruppo.The metrics fall into groups; when any member of a group is selected, only the other members of that group appear.

Interpretazione dei datiWhat does it all mean? riquadri e report sulle prestazioniPerformance tiles and reports

È possibile ottenere diverse metriche delle prestazioni.There are various performance metrics you can get. Vengono analizzate innanzitutto quelle visualizzate per impostazione predefinita nel pannello dell'applicazione.Let's start with those that appear by default on the application blade.

RichiesteRequests

Il numero di richieste HTTP ricevute in un periodo specificato.The number of HTTP requests received in a specified period. Confrontare questo numero con i risultati di altri report per analizzare il comportamento dell'app al variare del carico.Compare this with the results on other reports to see how your app behaves as the load varies.

Le richieste HTTP includono tutte le richieste GET o POST di pagine, dati e immagini.HTTP requests include all GET or POST requests for pages, data, and images.

Fare clic sul riquadro per visualizzare i conteggi per URL specifici.Click on the tile to get counts for specific URLs.

Tempo medio di rispostaAverage response time

Misura il tempo intercorso tra la ricezione di una richiesta Web da parte dell'applicazione e la risposta restituita.Measures the time between a web request entering your application and the response being returned.

I punti mostrano una media mobile.The points show a moving average. Se le richieste sono numerose, alcune di queste potrebbero deviare dalla media senza mostrare un picco o un calo evidente nel grafico.If there are a lot of requests, there might be some that deviate from the average without an obvious peak or dip in the graph.

Cercare picchi inconsueti.Look for unusual peaks. In genere, il tempo di risposta aumenta con l'aumento delle richieste.In general, expect response time to rise with a rise in requests. Se l'aumento è sproporzionato, l'app potrebbe aver raggiunto un limite di risorsa, ad esempio dovuto alla CPU o alla capacità di un servizio che utilizza.If the rise is disproportionate, your app might be hitting a resource limit such as CPU or the capacity of a service it uses.

Fare clic sul riquadro per visualizzare i tempi per URL specifici.Click the tile to get times for specific URLs.

Richieste lenteSlowest requests

Mostra quali richieste potrebbero necessitare di un'ottimizzazione delle prestazioni.Shows which requests might need performance tuning.

Richieste non riusciteFailed requests

La quantità di richieste che hanno restituito eccezioni non rilevate.A count of requests that threw uncaught exceptions.

Fare clic sul riquadro per visualizzare i dettagli di errori specifici e selezionare una singola richiesta per visualizzarne i dettagli.Click the tile to see the details of specific failures, and select an individual request to see its detail.

Viene conservato solo un campione di errori rappresentativi per l'analisi individuale.Only a representative sample of failures is retained for individual inspection.

Altre metricheOther metrics

Per sapere quali altri metriche è possibile visualizzare, fare clic su un grafico e deselezionare tutte le metriche per vedere l'intero set disponibile.To see what other metrics you can display, click a graph, and then deselect all the metrics to see the full available set. Fare clic su (i) per visualizzare la definizione di ciascuna metrica.Click (i) to see each metric's definition.

Deselezionare tutte le metriche per visualizzare l'intero set

La selezione di una metrica disabilita le altre metriche che non possono essere visualizzate nello stesso grafico.Selecting any metric disables the others that can't appear on the same chart.

Impostazione di avvisiSet alerts

Per ricevere tramite posta elettronica una notifica relativa a valori insoliti di una metrica, aggiungere un avviso.To be notified by email of unusual values of any metric, add an alert. È possibile scegliere di inviare il messaggio di posta elettronica agli amministratori di account o a indirizzi di posta elettronica specifici.You can choose either to send the email to the account administrators, or to specific email addresses.

Impostare la risorsa prima delle altre proprietà.Set the resource before the other properties. Non scegliere le risorse webtest se si desidera impostare avvisi sulle metriche relative a prestazioni o utilizzo.Don't choose the webtest resources if you want to set alerts on performance or usage metrics.

Prendere nota delle unità in cui viene chiesto di immettere il valore soglia.Be careful to note the units in which you're asked to enter the threshold value.

Il pulsante Aggiungi avviso non è visibile.I don't see the Add Alert button. Si tratta di un account di gruppo al quale è possibile accedere in sola lettura?- Is this a group account to which you have read-only access? Rivolgersi all'amministratore dell'account.Check with the account administrator.

Diagnosi dei problemiDiagnosing issues

Di seguito vengono riportati alcuni suggerimenti su come trovare e diagnosticare i problemi di prestazioni:Here are a few tips for finding and diagnosing performance issues:

  • Configurare i test Web in modo da ricevere un avviso se il sito Web non risponde o risponde in maniera non corretta o lentamente.Set up web tests to be alerted if your web site goes down or responds incorrectly or slowly.
  • Confrontare il conteggio delle richieste con altre metriche per verificare se gli errori o la risposta lenta sono collegati al carico.Compare the Request count with other metrics to see if failures or slow response are related to load.
  • Inserire e cercare istruzioni di traccia nel codice per individuare i problemi.Insert and search trace statements in your code to help pinpoint problems.
  • Monitorare l'applicazione Web in esecuzione con Live Metrics Stream.Monitor your Web app in operation with Live Metrics Stream.
  • Acquisire lo stato dell'applicazione .Net con il debugger di snapshot.Capture the state of your .Net application with Snapshot Debugger.

Nota

Microsoft sta trasferendo l'analisi delle prestazioni di Application Insights a un'esperienza a schermo intero e interattiva.We are in the process of transitioning Application Insights performance investigation to an interactive full-screen experience. La documentazione seguente descrive prima di tutto la nuova esperienza e quindi esamina quella precedente, per i casi in cui è necessario continuare ad accedervi, mentre è ancora disponibile durante la transizione.The following documentation covers the new experience first and then reviews the previous experience, in case you still need to access it, while it remains available throughout the transition.

Trovare e correggere i colli di bottiglia con un'esperienza di analisi delle prestazioni a schermo intero e interattivaFind and fix performance bottlenecks with an interactive full-screen performance investigation

È possibile usare la nuova analisi interattiva delle prestazioni di Application Insights per esaminare le operazioni con prestazioni insoddisfacenti nell'app Web.You can use the new Application Insights interactive performance investigation to review slow performing operations in your Web app. È possibile selezionare rapidamente un'operazione lenta specifica e usare Profiler per individuare la causa principale della lentezza fino al codice.You can quickly select a specific slow operation and use Profiler to root cause the slow operations down to code. Usando la nuova distribuzione della durata visualizzata per l'operazione selezionata, è possibile valutare rapidamente e immediatamente il livello di inadeguatezza dell'esperienza per i clienti.Using the new duration distribution shown for the selected operation you can quickly at a glance assess just how bad the experience is for your customers. In effetti, per ogni operazione lenta è possibile visualizzare il numero di interazioni utente interessate.In fact, for each slow operation you can see how many of your user interactions were impacted. Nell'esempio seguente si vuole osservare più da vicino l'operazione GET su clienti e dettagli.In the following example, we've decided to take a closer look at the experience for GET Customers/Details operation. Nella distribuzione della durata è possibile osservare tre picchi.In the duration distribution we can see that there are three spikes. Il picco più a sinistra è di circa 400 millisecondi e rappresenta un'esperienza con velocità di risposta ottimale.Leftmost spike is around 400ms and represents great responsive experience. Il picco al centro è di circa 1,2 secondi e rappresenta un'esperienza mediocre.Middle spike is around 1.2s and represents a mediocre experience. Infine, è presente un altro piccolo picco a 3,6 secondi, che rappresenta un'esperienza al 99° percentile e che può provocare l'abbandono dei clienti per insoddisfazione.Finally at the 3.6s we have another small spike that represents the 99th percentile experience, which is likely to cause our customers to leave dissatisfied. Questa esperienza è dieci volte più lenta dell'esperienza ottimale per la stessa operazione.That experience is ten times slower than the great experience for the same operation.

Tre picchi di durata per l'operazione GET su clienti e dettagli

Per ottenere un'idea più accurata delle esperienze utente per questa operazione, è possibile selezionare un intervallo di tempo maggiore.To get a better sense of the user experiences for this operation, we can select a larger time range. È anche possibile ridurre il tempo in base a un intervallo specifico in cui l'operazione si è rivelata particolarmente lenta.We can then also narrow down in time on a specific time window where the operation was particularly slow. Nell'esempio seguente l'intervallo di tempo è stato modificato da quello predefinito di 24 ore a uno di 7 giorni, concentrandosi sull'intervallo tra le 9.47 e le 12.47 tra martedì 12 e mercoledì 13.In the following example we've switched from the default 24 hours time range to the 7 days time range and then zoomed into the 9:47 to 12:47 time window between Tue the 12th and Wed the 13th. Si noti che a destra sono stati aggiornati sia la distribuzione della durata sia il numero di campioni e di tracce del profiler.Note that both the duration distribution and the number of sample and profiler traces have been updated on the right.

Tre picchi di durata dell'operazione GET su clienti e dettagli in un intervallo di 7 giorni

Per limitare l'ambito alle esperienze con prestazioni lente, si concentra la visualizzazione sulle durate comprese tra il 95° e il 99° percentile.To narrow in on the slow experiences, we next zoom into the durations that fall between 95th and the 99th percentile. Queste rappresentano il 4% delle interazioni utente particolarmente lente.These represent the 4% of user interactions that were particularly slow.

Tre picchi di durata dell'operazione GET su clienti e dettagli in un intervallo di 7 giorni

È ora possibile esaminare i campioni rappresentativi, facendo clic sul pulsante Samples (Campioni), o le tracce del profiler rappresentative, facendo clic sul pulsante Profiler traces (Tracce profiler).We can now either look at the representative samples, by clicking on the Samples button, or at the representative profiler traces, by clicking on the Profiler traces button. Questo esempio contiene quattro tracce che sono state raccolte per l'operazione GET su clienti e dettagli nell'intervallo di tempo e nella durata di interesse.In this example there are four traces that have been collected for GET Customers/Details in the time window and range duration of interest.

A volte il problema non riguarda il codice, ma una dipendenza chiamata dal codice.Sometimes the issue will not be in your code, but rather in a dependency you code calls. È possibile passare alla scheda delle dipendenze nella visualizzazione di valutazione delle prestazioni per analizzare le dipendenze lente.You can switch to the Dependencies tab in the performance triage view to investigate such slow dependencies. Si noti che per impostazione predefinita la visualizzazione delle prestazioni è costituita dalla media delle tendenze, ma il dato più interessante è il 95° percentile (o il 99°, se si sta monitorando un servizio più vecchio).Note that by default the performance view is trending averages, but what you really want to look at is the 95th percentile (or the 99th, in case you are monitoring a very mature service). Nell'esempio seguente viene esaminata la dipendenza lenta relativa al BLOB di Azure, in cui viene eseguita un'operazione PUT su fabrikamaccount.In the following example we have focused on the slow Azure BLOB dependency, where we call PUT fabrikamaccount. Le esperienze positive si aggirano intorno ai 40 millisecondi, mentre le chiamate meno veloci alla stessa dipendenza sono tre volte più lente, raggruppandosi intorno ai 120 millisecondi.The good experiences cluster around 40ms, while the slow calls to the same dependency are three times slower, clustering around 120ms. Non sono necessarie molte di queste chiamate per provocare un notevole rallentamento della rispettiva operazione.It doesn't take many of these calls to add up to cause the respective operation to noticeably slow down. È possibile esaminare più dettagliatamente le tracce del profiler e i campioni rappresentativi, allo stesso modo che nella scheda delle operazioni.You can drill into the representative samples and profiler traces, just like you can with the Operations tab.

Tre picchi di durata dell'operazione GET su clienti e dettagli in un intervallo di 7 giorni

Un'altra funzionalità molto potente che rappresenta una novità dell'esperienza di analisi delle prestazioni a schermo intero e interattiva è l'integrazione con le informazioni dettagliate.Another really powerful feature that is new to the interactive full-screen performance investigation is the integration with insights. Application Insights è in grado di rilevare e restituire come informazioni dettagliate le regressioni della velocità di risposta e può aiutare a identificare le proprietà comuni nel set di campioni su cui si sceglie di concentrarsi.Application Insights can detect and surface as insights responsiveness regressions as well as help you identify common properties in the sample set you decided to focus on. Il modo migliore per esaminare tutte le informazioni dettagliate disponibili consiste nel passare a un intervallo di tempo di 30 giorni e quindi selezionare Overall (Complessive) per visualizzare le informazioni dettagliate su tutte le operazioni per l'ultimo mese.The best way to look at all of the available insights is to switch to a 30 days time range and then select Overall to see insights across all operations for the past month.

Tre picchi di durata dell'operazione GET su clienti e dettagli in un intervallo di 7 giorni

Con la nuova visualizzazione di valutazione delle prestazioni, Application Insights è letteralmente in grado di trovare l'ago nel pagliaio che causa le esperienze insoddisfacenti per gli utenti dell'app Web.Application Insights in the new performance triage view can literally help you find the needles in the haystack that result in poor experiences for your Web app users.

Funzionalità deprecata: individuazione e correzione dei colli di bottiglia delle prestazioni con un'analisi delle prestazioni legacy a riquadri di dimensioni limitateDeprecated: Find and fix performance bottlenecks with a narrow bladed legacy performance investigation

È possibile usare l'esperienza di analisi delle prestazioni legacy a riquadri di Application Insights per individuare le aree dell'app Web che rallentano le prestazioni complessive.You can use the legacy Application Insights bladed performance investigation to locate areas of your Web app that are slowing down overall performance. È possibile trovare le pagine specifiche che rallentano le prestazioni e usare Profiler per tracciare la causa principale dei problemi, fino al codice.You can find specific pages that are slowing down, and use the Profiler to trace the root cause of these issues down to code.

Creare un elenco delle pagine lenteCreate a list of slow performing pages

La prima operazione da eseguire per individuare i problemi di prestazioni consiste nell'ottenere un elenco delle pagine che rispondono lentamente.The first step for finding performance issues is to get a list of the slow responding pages. Lo screenshot seguente illustra l'uso del pannello Prestazioni per ottenere un elenco delle possibili pagine che meritano un'ulteriore analisi.The screen shot below demonstrates using the Performance blade to get a list of potential pages to investigate further. Nella pagina è immediatamente evidente che si è verificato un rallentamento nel tempo di risposta dell'app alle 18:00 e di nuovo alle 22:00.You can quickly see from this page that there was a slow-down in the response time of the app at approximately 6:00 PM and again at approximately 10 PM. È anche possibile osservare che l'operazione GET customer/details (Ottieni clienti/dettagli) ha incluso operazioni di lunga durata con un tempo di risposta medio di 507,05 millisecondi.You can also see that the GET customer/details operation had some long running operations with a median response time of 507.05 milliseconds.

Analisi interattiva delle prestazioni di Application Insights

Eseguire il drill-down in pagine specificheDrill down on specific pages

Dopo aver ottenuto uno snapshot delle prestazioni dell'app, è possibile visualizzare altri dettagli sulle singole operazioni lente.Once you have a snapshot of your app's performance, you can get more details on specific slow-performing operations. Fare clic su un'operazione nell'elenco per visualizzare i dettagli come illustrato di seguito.Click on any operation in the list to see the details as shown below. Dal grafico è possibile determinare se le prestazioni erano basate su una dipendenza.From the chart you can see if the performance was based on a dependency. È anche possibile visualizzare il numero di utenti per i quali si sono verificati i diversi tempi di risposta.You can also see how many users experienced the various response times.

Pannello delle operazioni di Application Insights

Eseguire il drill-in un periodo di tempo specificoDrill down on a specific time period

Dopo aver identificato un periodo di tempo da analizzare, eseguire il drill-down per visualizzare le operazioni specifiche che potrebbero aver causato il rallentamento delle prestazioni.After you have identified a point in time to investigate, drill down even further to look at the specific operations that might have caused the performance slow-down. Quando si fa clic in un periodo di tempo specifico vengono visualizzati i dettagli della pagina come illustrato di seguito.When you click on a specific point in time you get the details of the page as shown below. Nell'esempio seguente sono elencate le operazioni per ogni periodo di tempo con i codici di risposta del server e la durata dell'operazione.In the example below you can see the operations listed for a given time period along with the server response codes and the operation duration. È disponibile anche l'URL per aprire un elemento di lavoro TFS per inviare queste informazioni al team di sviluppo.You also have the url for opening a TFS work item if you need to send this information to your development team.

Intervallo di tempo di Application Insights

Eseguire il drill-in un'operazione specificaDrill down on a specific operation

Dopo aver identificato un periodo di tempo da analizzare, eseguire il drill-down per visualizzare le operazioni specifiche che potrebbero aver causato il rallentamento delle prestazioni.After you have identified a point in time to investigate, drill down even further to look at the specific operations that might have caused the performance slow-down. Fare clic su un'operazione nell'elenco per visualizzare i dettagli dell'operazione, come illustrato di seguito.Click on an operation from the list to see the details of the operation as shown below. In questo esempio l'operazione non è stata eseguita e Application Insights ha visualizzato i dettagli dell'eccezione generata dall'applicazione.In this example you can see that the operation failed, and Application Insights has provided the details of the exception the application threw. È di nuovo possibile creare un elemento di lavoro TFS da questo pannello.Again, you can easily create a TFS work item from this blade.

Pannello dell'operazione di Application Insights

Passaggi successiviNext steps

Test Web: possibilità di inviare richieste Web all'applicazione a intervalli regolari da tutto il mondo.Web tests - Have web requests sent to your application at regular intervals from around the world.

Acquisire e cercare tracce diagnostiche: possibilità di inserire chiamate di traccia ed esaminare i risultati per individuare i problemi.Capture and search diagnostic traces - Insert trace calls and sift through the results to pinpoint issues.

Monitorare l'utilizzo: possibilità di scoprire come le persone usano l'applicazione.Usage tracking - Find out how people use your application.

Domande e risposte e risoluzione dei problemiTroubleshooting - and Q & A