Informazioni su Application Insights
Application Insights analizza le prestazioni dell'applicazione Web e può segnalare potenziali problemi.
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. È attiva non appena l'app genera una quantità sufficiente di dati di telemetria.
Quando si riceve una notifica di rilevamento intelligente?
Application Insights invia una notifica nel momento in cui rileva che le prestazioni dell'applicazione si sono ridotte in uno dei modi seguenti:
- Riduzione del tempo di risposta: l'app ha iniziato a rispondere alle richieste più lentamente rispetto a quella usata. È possibile che il cambiamento sia stato improvviso, ad esempio se si è verificata una regressione nell'ultima distribuzione, oppure graduale, forse a causa di una perdita di memoria.
- Riduzione della durata delle dipendenze: l'app effettua chiamate a un'API REST, un database o un'altra dipendenza. La dipendenza risponde più lentamente del solito.
- Modello di prestazioni lento: l'app presenta un problema di prestazioni che interessa solo alcune richieste. 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. Gli algoritmi di Application Insights esaminano i tempi di caricamento delle pagine, i tempi di risposta delle richieste e i tempi di risposta delle dipendenze.
Il rilevamento intelligente è una funzionalità di Application Insights che segnala potenziali problemi di prestazioni e anomalie di errore nell'applicazione Web. Per stabilire una baseline di riferimento, richiede almeno otto giorni di dati di telemetria in un volume sufficiente, Dopo tale periodo di tempo, qualsiasi problema significativo genera una notifica.
Un avviso significa sempre un problema?
Un avviso non significa necessariamente che si sia verificato un problema nell'app. È piuttosto di un suggerimento su un evento che potrebbe essere utile esaminare con maggiore attenzione.
Come risolvere i problemi?
Ogni notifica di avviso include anche informazioni di diagnostica. Di seguito viene fornito un esempio che illustra come poter usare queste informazioni:
- A scopo di valutazione: La notifica mostra il numero di utenti o il numero di operazioni interessati. Ciò consente di assegnare una priorità al problema.
- Per determinare l'ambito: il problema riguarda tutto il traffico o solo alcune pagine? È limitato a particolari browser o posizioni?
- Per la diagnostica: spesso, le informazioni di diagnostica nella notifica suggeriscono la natura del problema. Se, ad esempio, i tempi di risposta si riducono quando il tasso di richieste è elevato, ciò indica un sovraccarico del server o delle dipendenze. Se sono necessarie altre informazioni, aprire la sezione Prestazioni in Application Insights. Lì sono contenuti i dati del Profiler. Se vengono generate eccezioni, è anche possibile provare Snapshot Debugger.
Configurare le notifiche di posta elettronica
Le notifiche di rilevamento intelligente sono abilitate per impostazione predefinita e inviate a coloro che dispongono di proprietari, collaboratori e lettori dell'accesso alla risorsa di Application Insights. Per modificare questa impostazione, selezionare Configura nella notifica di posta elettronica o aprire impostazioni di rilevamento intelligente in Application Insights.
È possibile usare il collegamento di annullamento della sottoscrizione nel messaggio di posta elettronica di rilevamento intelligente per interrompere la ricezione di notifiche tramite posta elettronica.
Le e-mail sulle anomalie delle prestazioni di Rilevamento intelligente sono limitati a un messaggio di posta elettronica al giorno per ogni risorsa di Application Insights. Il messaggio viene inviato solo si è verificato almeno un nuovo problema nel giorno di riferimento.
Come è possibile migliorare le prestazioni?
Risposte lente o in errore possono essere frustranti per gli utenti dei siti Web. È importante risolvere rapidamente i problemi. I passaggi da eseguire per migliorare le prestazioni sono:
- Valutazione
- Diagnosi
- Migliora
Esaminare questi passaggi con maggiore attenzione, in termini di tempi di caricamento delle pagine.
Valutazione
Quando si analizza il problema, la prima domanda da porsi è: è importante? Se una pagina si carica sempre lentamente, ma solo l'1% degli utenti del sito la apre, il problema è di bassa priorità. D'altra parte, se solo l'1% degli utenti apre la pagina ma ogni volta viene generata un'eccezione, la priorità è alta. Usare le informazioni sull'impatto, che interessano gli utenti o una percentuale di traffico, come indicazioni generali, ma tenere presente che l'impatto non è l'unico problema. Raccogliere altre evidenze e considerare i parametri del problema. Se il problema dipende dall'area geografica, configurare i test di disponibilità che includono l'area.
Diagnosticare i caricamenti lenti delle pagine
Per la diagnosi del problema, porsi le domande seguenti:
- Dove si trova il problema?
- Il server è lento a rispondere?
- La pagina è lunga?
- Il browser deve gestire un carico di lavoro notevole per visualizzare questa pagina?
Se si esaminano i tempi di risposta del browser, aprire la metrica Browser . La visualizzazione segmentata dei tempi di caricamento pagina del browser mostra il tempo necessario per ogni operazione.
- Se l'ora della richiesta di invio è elevata, il server risponde lentamente o la richiesta è un POST con una grande quantità di dati. Esaminare le metriche delle prestazioni per analizzare i tempi di risposta.
- Configurare il rilevamento delle dipendenze per verificare se il ritardo è dovuto a servizi esterni o al database.
- Nel caso in cui Ricevere Risposta sia predominante, la pagina e le relative componenti dipendenti—JavaScript, CSS, immagini e così via (ma non i dati caricati in modo asincrono)—richiedono molto tempo. Configurare un test di disponibilità e assicurarsi di impostare l'opzione per caricare parti dipendenti. Quando si ottengono risultati, aprire i dettagli di un risultato ed espanderli per verificare i tempi di caricamento dei diversi file.
- Un tempo di elaborazione client elevato suggerisce che gli script vengono eseguiti lentamente. Se le cause non sono evidenti, prendere in considerazione l'aggiunta di codice relativo ai tempi e inviare i valori temporali in chiamate
trackMetric.
Migliorare le pagine lente
Di seguito sono riportati alcuni punti da cui partire quando si riflette su come poter migliorare le pagine lente:
- Caricamento lento a causa di file di grandi dimensioni: caricare gli script e altre parti in modo asincrono. Usare lo script bundling. Suddividere la pagina principale in widget che caricano i dati separatamente. Non inviare semplice codice HTML per tabelle lunghe: usare uno script per richiedere i dati in formato JSON o in un altro formato compatto, quindi riempire la tabella sul posto.
- Dipendenze lente del server: considerare le posizioni geografiche dei componenti. Ad esempio, se si usa Azure, assicurarsi che il server Web e il database si trovino nella stessa area geografica. Le query recuperano più informazioni di quelle necessarie? La memorizzazione nella cache o l'invio in batch?
- Problemi di capacità: esaminare le metriche del server dei tempi di risposta e dei conteggi delle richieste. Se i picchi dei tempi di risposta non sono proporzionati ai picchi del numero di richieste, è probabile i server siano sovraccarichi. Valutare l'opportunità di un aumento o un ampliamento.
Riduzione del tempo di risposta del server
Una notifica di riduzione del tempo di risposta indica:
- Il tempo di risposta rispetto al tempo di risposta normale per questa operazione.
- Il numero di utenti interessati.
- Il tempo medio di risposta e il tempo di risposta 90° percentile per questa operazione nel giorno del rilevamento e nei sette giorni precedenti.
- Il numero di richieste dell'operazione nel giorno del rilevamento e nei sette giorni precedenti.
- La correlazione tra la riduzione in questa operazione e le riduzioni nelle relative dipendenze.
- Risorse utili per la diagnosi del problema:
- Le tracce del Profiler consentono di vedere dove viene maggiormente impiegato il tempo di esecuzione dell'operazione (il collegamento è disponibile se per questa operazione sono stati raccolti esempi di traccia del Profiler durante il periodo di rilevamento).
- I report delle prestazioni in Esplora metriche, in cui è possibile analizzare i filtri e gli intervalli di tempo per questa operazione.
- Cercare questa chiamata per visualizzarne le proprietà specifiche.
- Report degli errori. se il conteggio è maggiore di 1, questa operazione conteneva errori che potrebbero aver contribuito alla riduzione del livello delle prestazioni.
Riduzione della durata delle dipendenze
Se l'applicazione si basa principalmente su servizi esterni, è opportuno controllare se si è verificata una riduzione delle prestazioni delle dipendenze.
Di seguito è riportato un esempio di notifica relativa alla riduzione delle prestazioni delle dipendenze:
Ciò indica:
- La durata rispetto al tempo di risposta normale per questa operazione.
- Il numero di utenti interessati.
- La durata media e la durata al 90° percentile per questa dipendenza nel giorno del rilevamento e nei sette giorni precedenti.
- Il numero di chiamate di dipendenza nel giorno del rilevamento e nei sette giorni precedenti.
- Risorse utili per la diagnosi del problema:
- I report delle prestazioni in Esplora metriche per questa dipendenza.
- Cercare le chiamate di questa dipendenza per visualizzarne le proprietà.
- Report degli errori. La presenza di uno o più errori indica che durante il periodo di rilevamento si sono verificate chiamate di dipendenza non riuscite che potrebbero aver contribuito alla riduzione delle prestazioni della durata.
- Aprire Analytics con le query che calcolano la durata e il numero delle dipendenze.
Rilevamento intelligente dei modelli a prestazioni lente
Application Insights rileva i problemi di prestazioni che potrebbero riguardare solo alcuni utenti o che riguardano gli utenti solo in alcuni casi. Si potrebbe notare, ad esempio, che le pagine si caricano lentamente solo con un tipo di browser o in una determinata area geografica.
Anomalie come queste sono difficili da rilevare semplicemente esaminando i dati, ma sono più comuni di quanto si potrebbe pensare. Spesso emergono solo quando i clienti si lamentano.
Gli algoritmi di Application Insights esaminano i tempi di caricamento delle pagine, i tempi di risposta delle richieste nel server e i tempi di risposta delle dipendenze. Non è necessario impostare soglie o configurare regole. Gli algoritmi di Machine Learning e di data mining vengono usati per rilevare modelli anomali. Di seguito è riportato un esempio di notifica:
Il campo When indica l'ora in cui è stato rilevato il problema.
Il campo What descrive:
- Il problema che è stato rilevato.
- Gli eventi che hanno generato il comportamento problematico.
Nella tabella viene confrontata la serie di eventi caratterizzata da prestazioni scadenti con comportamento medio di tutti gli altri eventi.
Selezionare i collegamenti per aprire Esplora metriche e Cerca per trovare report pertinenti filtrati in base all'ora e alle proprietà del set di prestazioni lente, quindi modificare l'intervallo di tempo e i filtri per esplorare i dati di telemetria.