Condividi tramite


Rilevamento intelligente - Anomalie delle 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 la lingua supportata. 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 linea di base delle prestazioni normali, il rilevamento intelligente richiede almeno otto giorni di volume di telemetria sufficiente. Dopo l'esecuzione dell'applicazione per quel periodo, le anomalie significative genereranno 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:

Here is an example of Server Response Time Degradation detection

  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, può indicare che il server o le dipendenze superano la capacità.

    In caso contrario, aprire il riquadro Prestazioni in Application Insights. I dati di Profiler sono disponibili. Se vengono generate eccezioni, è anche possibile provare il debugger di snapshot.

Configurare le notifiche tramite posta elettronica

Le notifiche di rilevamento intelligente sono abilitate per impostazione predefinita. Vengono inviati agli utenti che dispongono dell'accesso con autorizzazioni di lettura e monitoraggio di monitoraggio alla sottoscrizione in cui risiede la risorsa di Application Insights. Per modificare la notifica predefinita, fare clic su Configura nella notifica di posta elettronica o aprire Impostazioni di rilevamento intelligente in Application Insights.

Smart Detection Settings

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

I messaggi di posta elettronica sulle anomalie delle prestazioni del 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?

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

    • Attualmente, vengono analizzati i tempi di risposta delle richieste, il tempo di risposta alle dipendenze e il tempo di caricamento delle pagine. L'analisi di altre metriche è disponibile nel backlog.
  • Quali tipi di applicazione funzionano per questo 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. Tuttavia, nei servizi 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.
  • Questo sostituisce gli avvisi delle metriche?

    • Nr. 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 feed di rilevamento intelligente.
  • Non trovo più il messaggio di posta elettronica. Dove trovo le notifiche nel portale?

    • Nella panoramica di Application Insights dell'app fare clic sul riquadro Rilevamento intelligente. Troverai tutte le notifiche fino a 90 giorni dopo.

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. Tuttavia, se solo il 1% degli utenti lo apre, ma genera eccezioni ogni volta, questo potrebbe essere utile analizzare.

Usare l'istruzione di impatto, ad esempio utenti interessati o % del traffico, come guida generale. Tieni presente che potrebbe non raccontare tutta la storia. 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 deve funzionare troppo per visualizzarlo?

Aprire il riquadro delle metriche Browser. La visualizzazione segmentata del tempo 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 la lentezza dipende da servizi esterni o dal database.
  • Se la risposta di ricezione è predominante, la pagina e le relative parti dipendenti- JavaScript, CSS, immagini e così via (ma non vengono caricati in modo asincrono) sono 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 di grande aiuto 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.
  • Tempo medio di risposta e ora di risposta del 90° percentile per questa operazione il giorno del rilevamento e sette giorni prima.
  • 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 del profiler consentono di visualizzare la posizione in cui viene impiegato il tempo dell'operazione. Il collegamento è disponibile se esistono esempi di traccia del profiler 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 degli errori: se conteggio > 1, significa che si sono verificati errori in questa operazione che potrebbero aver contribuito alla riduzione delle prestazioni.

Riduzione della durata delle dipendenze

Le applicazioni moderne spesso adottano un approccio di progettazione di micro servizi, 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 intelligenza artificiale di Azure.

Esempio di notifica di riduzione delle dipendenze:

Here is an example of Dependency Duration Degradation detection

Le informazioni fornite includono:

  • La durata rispetto al tempo di risposta normale per questa operazione
  • Il numero di utenti interessati
  • Durata media e durata del 90° percentile per questa dipendenza nel giorno del rilevamento e sette giorni prima
  • Numero di chiamate di dipendenza nel giorno del rilevamento e sette giorni prima
  • 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 degli errori: se conteggio > 1, significa che durante il periodo di rilevamento sono state rilevate chiamate di dipendenza non riuscite che potrebbero 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 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. 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. Può anche individuare problemi associati a combinazioni di proprietà, ad esempio caricamenti di pagine lente in un'area geografica per i client che usano un particolare sistema operativo.

Le anomalie come queste sono difficili da rilevare solo esaminando i dati, ma sono più comuni di quanto si possa pensare. 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.

From the email alert, click the link to open the diagnostic report 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 visualizzano il comportamento del problema.
  • La tabella confronta il set con prestazioni scarse 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 di prestazioni lente.

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.