Rilevamento intelligente - anomalie nelle prestazioniSmart Detection - Performance Anomalies

Application Insights analizza automaticamente le prestazioni dell'applicazione Web e può segnalare potenziali problemi.Application Insights automatically analyzes the performance of your web application, and can warn you about potential problems. È possibile che questo messaggio venga letto perché si è ricevuta una delle nostre notifiche di rilevamento intelligente.You might be reading this because you received one of our smart detection notifications.

Questa funzionalità non richiede alcuna configurazione speciale, ma solo la configurazione dell'app per Application Insights, ovvero in ASP.NET, Java o Node.js e nel codice della pagina Web.This feature requires no special setup, other than configuring your app for Application Insights (on ASP.NET, Java, or Node.js, and in web page code). È attiva quando l'applicazione genera un numero sufficiente di dati di telemetria.It is active when your app generates enough telemetry.

Ricezione di una notifica di rilevamento intelligenteWhen would I get a smart detection notification?

Application Insights ha rilevato che le prestazioni dell'applicazione sono state ridotte in uno dei modi seguenti:Application Insights has detected that the performance of your application has degraded in one of these ways:

  • Riduzione del tempo di risposta: l'app ha iniziato a rispondere alle richieste più lentamente del solito.Response time degradation - Your app has started responding to requests more slowly than it used to. La modifica potrebbe essere stata rapida, ad esempio a causa di una regressione nella distribuzione più recente.The change might have been rapid, for example because there was a regression in your latest deployment. Oppure potrebbe essere stata graduale, probabilmente causata da una perdita di memoria.Or it might have been gradual, maybe caused by a memory leak.
  • Riduzione della durata della dipendenza: l'app effettua chiamate a un'API REST, un database o altre dipendenze.Dependency duration degradation - Your app makes calls to a REST API, database, or other dependency. La dipendenza risponde più lentamente del solito.The dependency is responding more slowly than it used to.
  • Modello di prestazioni lente: l'app sembra avere un problema di prestazioni che interessa solo alcune richieste.Slow performance pattern - Your app appears to have a performance issue that is affecting only some requests. Ad esempio, le pagine si caricano molto più lentamente su un tipo di browser rispetto ad altri oppure le richieste vengono eseguite molto più lentamente da un server specifico.For example, pages are loading more slowly on one type of browser than others; or requests are being served more slowly from one particular server. Attualmente, gli algoritmi esaminano i tempi di caricamento delle pagine, i tempi di risposta delle richieste e i tempi di risposta delle dipendenze.Currently, our algorithms look at page load times, request response times, and dependency response times.

Il rilevamento intelligente richiede almeno 8 giorni di dati di telemetria in un volume usabile per stabilire una base di prestazioni normali.Smart Detection requires at least 8 days of telemetry at a workable volume in order to establish a baseline of normal performance. Pertanto, dopo l'esecuzione dell'applicazione per tale periodo, qualsiasi problema significativo comporterà una notifica.So, after your application has been running for that period, any significant issue will result in a notification.

Verifica di eventuali problemi dell'appDoes my app definitely have a problem?

Una notifica non significa che l'app ha sicuramente un problema.No, a notification doesn't mean that your app definitely has a problem. Invita semplicemente a controllare con attenzione un determinato componente.It's simply a suggestion about something you might want to look at more closely.

RisoluzioneHow do I fix it?

Le notifiche includono informazioni di diagnostica.The notifications include diagnostic information. Ad esempio:Here's an example:

Di seguito è riportato un esempio di rilevamento della riduzione del tempo di risposta del server

  1. Valutazione.Triage. La notifica mostra il numero di utenti o il numero di operazioni interessati.The notification shows you how many users or how many operations are affected. Ciò consente di assegnare una priorità al problema.This can help you assign a priority to the problem.
  2. Ambito.Scope. Il problema interessa solo alcune pagine o tutto il traffico?Is the problem affecting all traffic, or just some pages? È limitato a browser o percorsi specifici?Is it restricted to particular browsers or locations? Queste informazioni si possono ricavare dalla notifica.This information can be obtained from the notification.
  3. Diagnosi.Diagnose. Spesso, le informazioni di diagnostica nella notifica suggeriscono la natura del problema.Often, the diagnostic information in the notification will suggest the nature of the problem. Ad esempio, se il tempo di risposta diminuisce quando la frequenza delle richieste è elevata, questo suggerisce che il server o le dipendenze sono sovraccariche.For example, if response time slows down when request rate is high, that suggests your server or dependencies are overloaded.

    In caso contrario, aprire il pannello Prestazioni in Application Insights.Otherwise, open the Performance blade in Application Insights. Qui sono contenuti i dati del Profiler.There, you will find Profiler data. Se vengono generate eccezioni, è anche possibile provare il debugger di snapshot.If exceptions are thrown, you can also try the snapshot debugger.

Configurare le notifiche tramite posta elettronicaConfigure Email Notifications

Le notifiche di rilevamento intelligente sono abilitate per impostazione predefinita e inviate a coloro i quali hanno l'accesso di proprietari, collaboratori e lettori alla risorsa Application Insights.Smart Detection notifications are enabled by default and sent to those who have owners, contributors and readers access to the Application Insights resource. Per modificare questa impostazione, fare clic su Configura nella notifica tramite posta elettronica o aprire le impostazioni di rilevamento intelligente in Application Insights.To change this, either click Configure in the email notification, or open Smart Detection settings in Application Insights.

Impostazioni di rilevamento intelligente

  • È possibile usare il collegamento Annulla sottoscrizione nel messaggio di posta elettronica di Rilevamento intelligente per interrompere la ricezione delle notifiche di posta elettronica.You can use the unsubscribe link in the Smart Detection email to stop receiving the email notifications.

I messaggi di posta elettronica sulle anomalie delle prestazioni dei rilevamenti intelligenti sono limitati a un messaggio di posta elettronica al giorno per ogni risorsa di Application Insights.Emails about Smart Detections performance anomalies are limited to one email per day per Application Insights resource. Il messaggio di posta elettronica verrà inviato solo se è presente almeno un nuovo problema rilevato per quella giornata.The email will be sent only if there is at least one new issue that was detected on that day. senza alcuna ripetizione dello stesso messaggio.You won't get repeats of any message.

domande frequentiFAQ

  • È vero che il personale Microsoft ha accesso ai dati personali?So, Microsoft staff look at my data?
    • No.No. Il servizio è completamente automatico.The service is entirely automatic. L'utente riceve le notifiche,Only you get the notifications. ma i dati restano privati.Your data is private.
  • Tutti i dati raccolti vengono analizzati da Application Insights?Do you analyze all the data collected by Application Insights?

    • Attualmente no.Not at present. Al momento vengono analizzati il tempo di risposta alla richiesta, il tempo di risposta della dipendenza e il tempo di caricamento della pagina.Currently, we analyze request response time, dependency response time and page load time. L'analisi delle metriche aggiuntive si trova nel backlog futuro.Analysis of additional metrics is on our backlog looking forward.
  • Per quali tipi di applicazione funziona?What types of application does this work for?

    • Tali riduzioni vengono rilevate in qualsiasi applicazione che generi dati di telemetria adeguati.These degradations are detected in any application that generates the appropriate telemetry. Se Application Insights è stata installata nell'app Web, le richieste e le dipendenze vengono rilevate automaticamente.If you installed Application Insights in your web app, then requests and dependencies are automatically tracked. Ma nei servizi di back-end o in altre app, se sono state inserite chiamate a TrackRequest() o TrackDependency, il rilevamento intelligente funzionerà nello stesso modo.But in backend services or other apps, if you inserted calls to TrackRequest() or TrackDependency, then Smart Detection will work in the same way.
  • Si possono creare regole personalizzate di rilevamento delle anomalie o personalizzare le regole esistenti?Can I create my own anomaly detection rules or customize existing rules?

  • Con quale frequenza viene eseguita l'analisi?How often is the analysis performed?

    • L'analisi viene eseguita giornalmente sui dati di telemetria dal giorno precedente, giornata completa nel fuso orario UTC.We run the analysis daily on the telemetry from the previous day (full day in UTC timezone).
  • Ciò sostituisce gli avvisi delle metriche?So does this replace metric alerts?

    • No.No. Non viene eseguito il rilevamento di tutti i comportamenti presumibilmente ritenuti anomali dall'utente.We don't commit to detecting every behavior that you might consider abnormal.
  • Se non eseguo alcuna operazione in risposta a una notifica, viene inviato un promemoria?If I don't do anything in reponse to a notification, will I get a reminder?

    • No, il messaggio relativo a un singolo problema viene ricevuto una sola volta.No, you get a message about each issue only once. Se il problema persiste verrà aggiornato nel pannello dei feed del il rilevamento intelligente.If the issue persist it will be updated in the Smart Detection feed blade.
  • Non trovo più il messaggio di posta elettronica. Dove trovo le notifiche nel portale?I lost the email. Where can I find the notifications in the portal?
    • Nel pannello di panoramica dell'app in Application Insights fare clic sul riquadro Rilevamento intelligente.In the Application Insights overview of your app, click the Smart Detection tile. Si potranno trovare tutte le notifiche di backup per 90 giorni precedenti.There you'll be able to find all notifications up to 90 days back.

In che modo è possibile migliorare le prestazioni?How can I improve performance?

Come si sarà potuto notare, le risposte non riuscite o lente rappresentano una delle frustrazioni principali per gli utenti di siti Web.Slow and failed responses are one of the biggest frustrations for web site users, as you know from your own experience. È quindi importante risolvere questo problema.So, it's important to address the issues.

ValutazioneTriage

Occorre prima di tutto stabilire l'impatto del problema.First, does it matter? Se il caricamento di una pagina è sempre lento, ma solo l'1% degli utenti del sito deve visualizzarla, forse non si tratta di un problema particolarmente rilevante.If a page is always slow to load, but only 1% of your site's users ever have to look at it, maybe you have more important things to think about. Se invece solo l'1% degli utenti la apre ma la pagina genera eccezioni a ogni apertura, è consigliabile esaminare il problema.On the other hand, if only 1% of users open it, but it throws exceptions every time, that might be worth investigating.

Usare le informazioni sull'impatto, che interessano gli utenti o un percentuale di traffico, come indicazioni generali, ma ricordare che sono necessari approfondimenti.Use the impact statement (affected users or % of traffic) as a general guide, but be aware that it isn't the whole story. Raccogliere altre informazioni per confermare.Gather other evidence to confirm.

Esaminare i parametri del problema.Consider the parameters of the issue. Se dipende dall'area geografica, configurare test di disponibilità che includono quell'area: è possibile che si stiano semplicemente verificando problemi di rete nell'area specifica.If it's geography-dependent, set up availability tests including that region: there might simply be network issues in that area.

Diagnosi dei caricamenti lenti delle pagineDiagnose slow page loads

Dove si verifica il problema?Where is the problem? La risposta del server è lenta, la pagina è molto lunga o il browser non la visualizza facilmente?Is the server slow to respond, is the page very long, or does the browser have to do a lot of work to display it?

Aprire il pannello delle metriche del browser.Open the Browsers metric blade. La visualizzazione segmentata del tempo di caricamento pagina del browser mostra il tempo necessario per ogni operazione.The segmented display of browser page load time shows where the time is going.

  • Se il valore di Tempo per l'invio della richiesta è elevato, la risposta del server è lenta o la richiesta è un post con molti dati.If Send Request Time is high, either the server is responding slowly, or the request is a post with a lot of data. Esaminare le metriche delle prestazioni per analizzare i tempi di risposta.Look at the performance metrics to investigate response times.
  • Configurare il rilevamento delle dipendenze per verificare se la lentezza dipende da servizi esterni o dal database.Set up dependency tracking to see whether the slowness is due to external services or your database.
  • Se il valore Tempo per la ricezione della risposta è predominante, la pagina e le relative parti dipendenti, ovvero JavaScript, CSS, immagini e così via (ma non i dati caricati in modo asincrono) sono molto lunghe.If Receiving Response is predominant, your page and its dependent parts - JavaScript, CSS, images and so on (but not asynchronously loaded data) are long. Configurare un test di disponibilitàe assicurarsi di impostare l'opzione per il caricamento delle parti dipendenti.Set up an availability test, and be sure to set the option to load dependent parts. Quando si ottengono risultati, aprire i dettagli di un risultato ed espanderli per verificare i tempi di caricamento dei diversi file.When you get some results, open the detail of a result and expand it to see the load times of different files.
  • Un valore elevato per Tempo di elaborazione client indica che l'esecuzione degli script è lenta.High Client Processing time suggests scripts are running slowly. Se le cause non sono evidenti, prendere in considerazione l'aggiunta di codice relativo ai tempi e inviare i valori temporali in chiamate trackMetric.If the reason isn't obvious, consider adding some timing code and send the times in trackMetric calls.

Migliorare le pagine lenteImprove slow pages

Sul Web sono disponibili molti suggerimenti per migliorare le risposte del server e i tempi di caricamento delle pagine, quindi non occorre riportarli in questo articolo.There's a web full of advice on improving your server responses and page load times, so we won't try to repeat it all here. Ecco alcuni suggerimenti probabilmente già noti, ma che possono risultare utili:Here are a few tips that you probably already know about, just to get you thinking:

  • Caricamento lento a causa di file di grandi dimensioni: caricare gli script e altre parti in modo asincrono.Slow loading because of big files: Load the scripts and other parts asynchronously. Usare la creazione di bundle di script.Use script bundling. Suddividere la pagina principale in widget che caricano separatamente i rispettivi dati.Break the main page into widgets that load their data separately. Non inviare semplice codice HTML per tabelle lunghe.Don't send plain old HTML for long tables: use a script to request the data as JSON or other compact format, then fill the table in place. Usare invece uno script per richiedere i dati come JSON o un altro formato compatto, quindi compilare la tabella sul posto.There are great frameworks to help with all this. Per semplificare queste operazioni, sono disponibili utili framework, che ovviamente includono script di grandi dimensioni.(They also entail big scripts, of course.)
  • Dipendenze lente del server: esaminare le posizioni geografiche dei componenti.Slow server dependencies: Consider the geographical locations of your components. Ad esempio, se si usa Azure, assicurarsi che il server Web e il database si trovino nella stessa area geografica.For example, if you're using Azure, make sure the web server and the database are in the same region. Le query recuperano una quantità di informazioni superiore al necessario?Do queries retrieve more information than they need? La memorizzazione nella cache o l'invio in batch possono essere utili?Would caching or batching help?
  • Problemi di capacità: esaminare le metriche del server relative ai tempi di risposta e al numero delle richieste.Capacity issues: Look at the server metrics of response times and request counts. Se i picchi dei tempi di risposta non sono proporzionati ai picchi del numero di richieste, è probabile che le capacità dei server siano insufficienti.If response times peak disproportionately with peaks in request counts, it's likely that your servers are stretched.

Riduzione del tempo di risposta del serverServer Response Time Degradation

La notifica di riduzione del tempo di risposta indica:The response time degradation notification tells you:

  • Il tempo di risposta rispetto al tempo di risposta normale per questa operazione.The response time compared to normal response time for this operation.
  • Il numero di utenti interessati.How many users are affected.
  • Il tempo medio di risposta e il tempo di risposta 90° percentile per questa operazione il giorno del rilevamento per 7 giorni precedenti.Average response time and 90th percentile response time for this operation on the day of the detection and 7 days before.
  • Il numero di richieste per questa operazione il giorno del rilevamento e per 7 giorni precedenti.Count of this operation requests on the day of the detection and 7 days before.
  • La correlazione tra la riduzione in questa operazione e le riduzioni nelle relative dipendenze.Correlation between degradation in this operation and degradations in related dependencies.
  • I collegamenti che consentono di diagnosticare il problema.Links to help you diagnose the problem.
    • Le tracce del profiler che consentono di visualizzare dove viene impiegato il tempo dell'operazione. Il collegamento è disponibile se, per questa operazione durante il periodo di rilevamento, sono stati raccolti esempi di analisi del Profiler.Profiler traces to help you view where operation time is spent (the link is available if Profiler trace examples were collected for this operation during the detection period).
    • I report di prestazioni in Metric Explorer (Esplora metriche), in cui è possibile suddividere e ripartire filtri/intervalli di tempo per questa operazione.Performance reports in Metric Explorer, where you can slice and dice time range/filters for this operation.
    • Cercare queste chiamate per visualizzare le proprietà specifiche delle chiamate.Search for this calls to view specific calls properties.
    • Report relativo a un errore: se il conteggio è maggiore di 1 significa che questa operazione conteneva errori che potrebbe aver contribuito al calo delle prestazioni.Failure reports - If count > 1 this mean that there were failures in this operation that might have contributed to performance degradation.

Riduzione della durata delle dipendenzeDependency Duration Degradation

L'applicazione moderna adotta con sempre maggiore frequenza l'approccio di progettazione ai micro servizi, che in molti casi comporta l'affidarsi ai servizi esterni.Modern application more and more adopt micro services design approach, which in many cases leads to heavy reliability on external services. Ad esempio, se l'applicazione si basa su piattaforme di dati o se si compila il proprio servizio Bot, probabilmente ci si baserà su provider di servizi cognitivi che abilitino i bot all'interazione in modi più umani e su alcuni servizi di archiviazione dati da cui i bot possano estrarre le risposte.For example, if your application relies on some data platform or even if you build your own bot service you will probably relay on some cognitive services provider to enable your bots to interact in more human ways and some data store service for bot to pull the answers from.

Esempio di notifica di riduzione delle dipendenze:Example dependency degradation notification:

Di seguito è riportato un esempio di rilevamento della riduzione della durata delle dipendenze

Le informazioni fornite includono:Notice that it tells you:

  • La durata rispetto al tempo di risposta normale per questa operazioneThe duration compared to normal response time for this operation
  • Il numero di utenti interessatiHow many users are affected
  • La durata media e la durata 90° percentile per questa dipendenza per il giorno del rilevamento e per 7 giorni precedentiAverage duration and 90th percentile duration for this dependency on the day of the detection and 7 days before
  • Il numero di chiamata della dipendenza del giorno del rilevamento e per 7 giorni precedentiNumber of dependency calls on the day of the detection and 7 days before
  • I collegamenti che consentono di diagnosticare il problemaLinks to help you diagnose the problem
    • I report delle prestazioni in Metric Explorer (Esplora metriche) per questa dipendenzaPerformance reports in Metric Explorer for this dependency
    • Cercare queste chiamate della dipendenza per visualizzare le proprietà delle chiamateSearch for this dependency calls to view calls properties
    • Report di un errore: se il conteggio è maggiore di 1 significa che si sono verificati errori di chiamate di dipendenza durante il periodo di rilevamento che può aver contribuito alla riduzione della durata.Failure reports - If count > 1 this mean that there were failed dependency calls during the detection period that might have contributed to duration degradation.
    • Aprire l'Analisi con le query che consentono di calcolare la durata e il numero delle dipendenzeOpen Analytics with queries that calculate this dependency duration and count

Rilevamento intelligente dei modelli di esecuzione lentaSmart Detection of slow performing patterns

Application Insights rileva i problemi di prestazioni che potrebbero riguardare solo alcuni utenti o che riguardano gli utenti solo in alcuni casi.Application Insights finds performance issues that might only affect some portion of your users, or only affect users in some cases. Ad esempio, le notifiche relative al caricamento più lento delle pagine su un tipo di browser rispetto ad altri o se le richieste vengono eseguite più lentamente da un server specifico.For example, notification about pages load is slowler on one type of browser than on other types of browsers, or if requests are served more slowly from a particular server. È anche possibile rilevare problemi legati alle combinazioni di proprietà, ad esempio caricamenti lenti della pagine in un'area geografica per clienti che usano un particolare sistema operativo.It can also discover problems associated with combinations of properties, such as slow page loads in one geographical area for clients using particular operating system.

Anomalie come queste sono molto difficili da rilevare semplicemente esaminando i dati, ma sono più comuni di quanto si pensi.Anomalies like these are very hard to detect just by inspecting the data, but are more common than you might think. Spesso emergono solo quando i clienti si lamentano.Often they only surface when your customers complain. A quel punto è troppo tardi: gli utenti interessati sono già passati alla concorrenza.By that time, it’s too late: the affected users are already switching to your competitors!

Attualmente, gli algoritmi esaminano i tempi di caricamento delle pagine, i tempi di risposta richiesti al server e i tempi di risposta delle dipendenze.Currently, our algorithms look at page load times, request response times at the server, and dependency response times.

Non è necessario impostare regole di soglia o configurare regole.You don't have to set any thresholds or configure rules. Per rilevare modelli anomali vengono utilizzati Machine Learning e algoritmi di data mining.Machine learning and data mining algorithms are used to detect abnormal patterns.

Nell'avviso di posta elettronica fare clic sul collegamento per aprire il report di diagnostica in Azure

  • Quando è visualizzata l'ora in cui è stato rilevato il problema.When shows the time the issue was detected.
  • In Informazioni approfondite vengono visualizzate le informazioni seguenti:What describes:

    • Il problema rilevato;The problem that was detected;
    • Le caratteristiche della serie di eventi in cui è stato rilevato il comportamento anomalo.The characteristics of the set of events that we found displayed the problem behavior.
  • Nella tabella viene confrontata la serie di eventi caratterizzata da prestazioni scadenti con comportamento medio di tutti gli altri eventi.The table compares the poorly-performing set with the average behavior of all other events.

Fare clic sui collegamenti per aprire Esplora metrica ed eseguire ricerche nei report rilevanti, filtrati in base all'ora e alle proprietà della serie di eventi con prestazioni scadenti.Click the links to open Metric Explorer and Search on relevant reports, filtered on the time and properties of the slow performing set.

Modificare l'intervallo di tempo e i filtri per esplorare i dati di telemetria.Modify the time range and filters to explore the telemetry.

Passaggi successiviNext steps

Gli strumenti di diagnostica seguenti consentono di controllare la telemetria dall'app:These diagnostic tools help you inspect the telemetry from your app:

Gli avvisi di rilevamento intelligente sono completamente automatici,Smart detections are completely automatic. tuttavia è possibile configurare avvisi aggiuntivi, se necessario.But maybe you'd like to set up some more alerts?