Condividi tramite


Rilevamento intelligente - Anomalie nelle prestazioni

Nota

È possibile eseguire la migrazione delle risorse di Application Insight al rilevamento intelligente basato su avvisi (anteprima). La migrazione crea regole di avviso per i diversi moduli di rilevamento intelligente. Una volta create, queste regole possono essere gestite e configurate proprio come per qualsiasi altra regola di Monitoraggio di Azure. È anche possibile configurare gruppi di azioni per queste regole, abilitando più metodi per eseguire azioni o attivare notifiche su nuovi rilevamenti.

Per altre informazioni sul processo di migrazione, vedere Migrazione degli avvisi di Rilevamento intelligente.

Application Insights analizza automaticamente le prestazioni dell'applicazione Web e può segnalare potenziali problemi.

Questa funzionalità non richiede alcuna configurazione speciale, oltre alla configurazione dell'app per Application Insights per il linguaggio supportato. Si attiva non appena l'app genera una quantità sufficiente di dati di telemetria.

Ricezione di una notifica di rilevamento intelligente

Application Insights ha rilevato che le prestazioni dell'applicazione sono state ridotte in uno dei modi seguenti:

  • Riduzione del tempo di risposta: l'app ha iniziato a rispondere alle richieste più lentamente del solito. La modifica potrebbe essere stata rapida, ad esempio a causa di una regressione nella distribuzione più recente. Oppure potrebbe essere stata graduale, probabilmente causata da una perdita di memoria.
  • Riduzione della durata della dipendenza: l'app effettua chiamate a un'API REST, un database o altre dipendenze. La dipendenza risponde più lentamente del solito.
  • Modello di prestazioni lente: l'app sembra avere 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. Attualmente, gli algoritmi esaminano i tempi di caricamento delle pagine, i tempi di risposta delle richieste e i tempi di risposta delle dipendenze.

Per stabilire una baseline delle prestazioni normali, il rilevamento intelligente richiede almeno otto giorni di volume di telemetria sufficiente. Dopo l'esecuzione dell'applicazione per tale periodo, le anomalie significative comporteranno una notifica.

Verifica di eventuali problemi dell'app

Una notifica non significa che l'app ha sicuramente un problema. Invita semplicemente a controllare con attenzione un determinato componente.

Come si risolve il problema?

Le notifiche includono informazioni di diagnostica. Ecco un esempio:

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

  1. Valutazione. La notifica mostra il numero di utenti o il numero di operazioni interessati. Queste informazioni consentono di assegnare una priorità al problema.

  2. Ambito. Il problema interessa solo alcune pagine o tutto il traffico? È limitato a browser o percorsi specifici? Queste informazioni si possono ricavare dalla notifica.

  3. Diagnosi. Spesso, le informazioni di diagnostica nella notifica suggeriscono la natura del problema. Ad esempio, se il tempo di risposta rallenta quando la frequenza delle richieste è elevata, ciò può indicare il superamento della capacità del server o delle dipendenze.

    In caso contrario, aprire il riquadro Prestazioni in Application Insights in cui si trovano i dati del profiler .NET. Se vengono generate eccezioni, è anche possibile provare snapshot debugger.

Configurare le notifiche tramite posta elettronica

Le notifiche di rilevamento intelligente sono abilitate per impostazione predefinita. Vengono inviate agli utenti che hanno accesso di tipo Ruolo con autorizzazioni di lettura dei dati di monitoraggio e Collaboratore per il monitoraggio per la sottoscrizione in cui risiede la risorsa di Application Insights. Per modificare la notifica predefinita, fare clic su Configura nella notifica tramite posta elettronica o aprire le Impostazioni di rilevamento intelligente in Application Insights.

Impostazioni di rilevamento intelligente

  • È possibile disabilitare la notifica predefinita e sostituirla con un elenco specificato di messaggi di posta elettronica.

I messaggi di posta elettronica sulle anomalie nelle prestazioni di rilevamento intelligente sono limitati a un messaggio di posta elettronica al giorno per ogni risorsa di Application Insights. Il messaggio di posta elettronica verrà inviato solo se è presente almeno un nuovo problema rilevato per quella giornata. senza alcuna ripetizione dello stesso messaggio.

Domande frequenti

  • È vero che il personale Microsoft ha accesso ai dati personali?

    • No. Il servizio è completamente automatico. L'utente riceve le notifiche, ma i dati restano privati.
  • Tutti i dati raccolti vengono analizzati da Application Insights?

    • Al momento vengono analizzati il tempo di risposta alla richiesta, il tempo di risposta della dipendenza e il tempo di caricamento della pagina. L'analisi di altre metriche aggiuntive è prevista per il futuro.
  • Per quali tipi di applicazione funziona il rilevamento?

    • Tali riduzioni vengono rilevate in qualsiasi applicazione che generi dati di telemetria adeguati. Se Application Insights è stata installata nell'app Web, le richieste e le dipendenze vengono rilevate automaticamente. 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.
  • Si possono creare regole personalizzate di rilevamento delle anomalie o personalizzare le regole esistenti?

  • Con quale frequenza viene eseguita l'analisi?

    • L'analisi viene eseguita giornalmente sui dati di telemetria dal giorno precedente, giornata completa nel fuso orario UTC.
  • Questa è una sostituzione per gli avvisi delle metriche?

    • No. Non viene eseguito il rilevamento di tutti i comportamenti presumibilmente ritenuti anomali dall'utente.
  • Se non eseguo alcuna operazione in risposta a una notifica, viene inviato un promemoria?

    • No, il messaggio relativo a un singolo problema viene ricevuto una sola volta. Se il problema persiste verrà aggiornato nel riquadro dei feed del rilevamento intelligente.
  • Non trovo più il messaggio di posta elettronica. Dove trovo le notifiche nel portale?

    • Nel pannello di panoramica dell'app in Application Insights fare clic sul riquadro Rilevamento intelligente. In tale riquadro saranno disponibili tutte le notifiche fino a 90 giorni precedenti.

In che modo è possibile migliorare le prestazioni?

Come si sarà potuto notare, le risposte non riuscite o lente rappresentano una delle frustrazioni principali per gli utenti di siti Web. È quindi importante risolvere questo problema.

Valutazione

Occorre prima di tutto stabilire l'impatto del problema. 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. Se invece solo l'1% degli utenti la apre ma la pagina genera eccezioni a ogni apertura, è consigliabile esaminare il problema.

Usare l'istruzione di impatto, ad esempio utenti interessati o % del traffico, come guida generale. Tenere presente che potrebbe non fornire informazioni complete. Raccogliere altre informazioni per confermare.

Esaminare i parametri del problema. Se dipende dall'area geografica, configurare test di disponibilità che includono quell'area: è possibile che si stiano verificando problemi di rete nell'area specifica.

Diagnosi dei caricamenti lenti delle pagine

Dove si verifica il problema? Il server è lento a rispondere, la pagina è troppo lunga o il browser richiede troppe operazioni per visualizzarla?

Aprire il riquadro delle metriche del browser. La visualizzazione segmentata del tempo di caricamento pagina del browser mostra il tempo necessario per ogni operazione.

  • Se il valore di Tempo per l'invio della richiesta è elevato, la risposta del server è lenta o la richiesta è un post con quantità elevate di dati. Esaminare le metriche delle prestazioni per analizzare i tempi di risposta.
  • Configurare il rilevamento delle dipendenze per verificare se la lentezza dipende da servizi esterni o dal 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. Configurare un test di disponibilitàe assicurarsi di impostare l'opzione per il caricamento delle parti dipendenti. Quando si ottengono risultati, aprire i dettagli di un risultato ed espanderli per verificare i tempi di caricamento dei diversi file.
  • Un valore elevato per Tempo di elaborazione client indica che l'esecuzione degli script è lenta. 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

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. Ecco alcuni suggerimenti probabilmente già noti, ma che possono risultare utili:

  • Caricamento lento a causa di file di grandi dimensioni: caricare gli script e le altre parti in modo asincrono. Usare la creazione di bundle di script. Suddividere la pagina principale in widget che caricano separatamente i rispettivi dati. Non inviare semplice codice HTML per tabelle lunghe. Sono disponibili framework molto utili per tali attività. Includono anche script di grandi dimensioni, naturalmente.
  • Dipendenze lente del server: esaminare le località 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 una quantità di informazioni superiore al necessario? La memorizzazione nella cache o l'invio in batch possono essere utili?
  • Problemi di capacità: esaminare le metriche del server relative ai tempi di risposta e al numero delle richieste. Se i picchi dei tempi di risposta non sono proporzionati ai picchi del numero di richieste, è probabile che le capacità dei server siano insufficienti.

Riduzione del tempo di risposta del server

La 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 pari al 90° percentile per questa operazione il giorno del rilevamento e per i 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.
  • I collegamenti che consentono di diagnosticare il problema.
    • Le tracce di Profiler .NET consentono di visualizzare la posizione in cui viene impiegato il tempo dell'operazione. Il collegamento è disponibile se esistono esempi di traccia di Profiler .NET per questa operazione.
    • I report di prestazioni in Metric Explorer (Esplora metriche), in cui è possibile suddividere e ripartire filtri/intervalli di tempo per questa operazione.
    • Cercare questa chiamata per visualizzare le proprietà specifiche della chiamata.
    • Report errori: se il conteggio è > 1, questa operazione conteneva errori che potrebbero aver contribuito alla riduzione del livello delle prestazioni.

Riduzione della durata delle dipendenze

Le applicazioni moderne adottano spesso un approccio di progettazione con microservizi, che in molti casi si basano principalmente su servizi esterni. Ad esempio, se l'applicazione si basa su una piattaforma dati o su un provider di servizi critici, ad esempio i Servizi di Azure AI.

Esempio di notifica di riduzione delle prestazioni delle dipendenze:

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

Le informazioni fornite includono:

  • La durata rispetto al tempo di risposta normale per questa operazione
  • Il numero di utenti interessati
  • La durata media e la durata pari al 90° percentile per questa dipendenza per il giorno del rilevamento e per i sette giorni precedenti
  • Il numero di chiamate di dipendenza il giorno del rilevamento e per i sette giorni precedenti
  • I collegamenti che consentono di diagnosticare il problema
    • I report delle prestazioni in Metric Explorer (Esplora metriche) per questa dipendenza
    • Cercare queste chiamate della dipendenza per visualizzare le proprietà delle chiamate
    • Report errori: se il conteggio è > 1 significa che si sono verificati errori di chiamate di dipendenza durante il periodo di rilevamento che possono aver contribuito alla riduzione della durata.
    • Aprire l'Analisi con le query che consentono di calcolare la durata e il numero delle dipendenze

Rilevamento intelligente dei criteri con prestazioni lente

Application Insights rileva i problemi di prestazioni che potrebbero riguardare solo alcuni utenti o che riguardano gli utenti solo in alcuni casi. Ad esempio, se una pagina viene caricata più lentamente in un tipo di browser specifico rispetto ad altri o se un determinato server gestisce le richieste più lentamente rispetto ad altri 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.

Anomalie come queste sono difficili da rilevare semplicemente esaminando i dati, ma sono più comuni di quanto si pensi. Spesso emergono solo quando i clienti si lamentano. A quel punto è troppo tardi: gli utenti interessati sono già passati alla concorrenza.

Attualmente, gli algoritmi esaminano i tempi di caricamento delle pagine, i tempi di risposta richiesti al server e i tempi di risposta delle dipendenze.

Non è necessario impostare regole di soglia o configurare regole. Per rilevare modelli anomali vengono utilizzati Machine Learning e algoritmi di data mining.

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.
  • Cosa descrive il problema rilevato e le caratteristiche del set di eventi rilevati, che presentavano il comportamento problematico.
  • Nella tabella viene confrontata la serie di eventi caratterizzata da prestazioni scadenti con il comportamento medio di tutti gli altri eventi.

Fare clic sui collegamenti per aprire Esplora metriche per visualizzare i report, filtrati in base all'ora e alle proprietà del set con prestazioni scadenti.

Modificare l'intervallo di tempo e i filtri per esplorare i dati di telemetria.

Passaggi successivi

Gli strumenti di diagnostica seguenti consentono di controllare la telemetria dall'app:

Il rilevamento intelligente è automatico. tuttavia è possibile configurare avvisi aggiuntivi, se necessario.