Rilevamento intelligente - Anomalie degli erroriSmart Detection - Failure Anomalies

Application Insights avvisa automaticamente l'utente quasi in tempo reale se si verifica un incremento anomalo della frequenza di richieste non riuscite nell'app Web,Application Insights automatically notifies you in near real time if your web app experiences an abnormal rise in the rate of failed requests. rilevando un aumento insolito della percentuale di richieste HTTP o di chiamate alle dipendenze segnalate come non riuscite.It detects an unusual rise in the rate of HTTP requests or dependency calls that are reported as failed. Per quanto riguarda le richieste, quelle non riuscite hanno in genere un codice di risposta 400 o superiore.For requests, failed requests are usually those with response codes of 400 or higher. Per poter valutare e diagnosticare il problema, la notifica include un'analisi delle caratteristiche degli errori e i dati di telemetria correlati.To help you triage and diagnose the problem, an analysis of the characteristics of the failures and related telemetry is provided in the notification. Sono disponibili anche collegamenti al portale di Application Insights per un'ulteriore diagnosi.There are also links to the Application Insights portal for further diagnosis. La funzionalità non necessita di alcuna installazione o configurazione, perché usa algoritmi di Machine Learning per stimare la normale frequenza degli errori.The feature needs no set-up nor configuration, as it uses machine learning algorithms to predict the normal failure rate.

Questa funzionalità funziona per le app Web Java e ASP.NET ospitate nel cloud o nei server aziendali.This feature works for Java and ASP.NET web apps, hosted in the cloud or on your own servers. Funziona anche per qualsiasi app che genera dati di telemetria di richiesta o di dipendenza, ad esempio, un ruolo di lavoro che chiama TrackRequest() o TrackDependency().It also works for any app that generates request or dependency telemetry - for example, if you have a worker role that calls TrackRequest() or TrackDependency().

Al termine della configurazione di Application Insights per il progetto, non appena l'app genera una quantità minima di dati di telemetria la funzionalità di rilevamento intelligente delle anomalie degli errori impiega 24 ore per apprendere il comportamento normale dell'app prima di essere attivato e inviare avvisi.After setting up Application Insights for your project, and provided your app generates a certain minimum amount of telemetry, Smart Detection of failure anomalies takes 24 hours to learn the normal behavior of your app, before it is switched on and can send alerts.

Ecco un avviso di esempio.Here's a sample alert.

Esempio di avviso di rilevamento intelligente che mostra l'analisi del cluster riguardo all'errore

Nota

Per impostazione predefinita, si riceve un messaggio di posta elettronica più breve rispetto a quello dell’esempio.By default, you get a shorter format mail than this example. Tuttavia, è possibile passare a questo formato dettagliato.But you can switch to this detailed format.

Le informazioni fornite includono:Notice that it tells you:

  • La frequenza degli errori confrontata al comportamento normale dell’applicazione.The failure rate compared to normal app behavior.
  • Il numero di utenti interessati, per far comprendere la portata del problema.How many users are affected – so you know how much to worry.
  • Un modello caratteristico associato agli errori.A characteristic pattern associated with the failures. In questo esempio sono presenti un codice di risposta, un nome di richiesta (operazione) e una versione dell’applicazione specifici.In this example, there’s a particular response code, request name (operation) and app version. che indica immediatamente in quale punto del codice cercare.That immediately tells you where to start looking in your code. In alternativa si può usare un browser o un sistema operativo client specifico.Other possibilities could be a specific browser or client operating system.
  • Eccezioni, tracce di log ed errori di dipendenza (database o altri componenti esterni) che sembrano associati ai particolari errori.The exception, log traces, and dependency failure (databases or other external components) that appear to be associated with the characterized failures.
  • Collegamenti diretti alle ricerche rilevanti nei dati di telemetria in Application Insights.Links directly to relevant searches on the telemetry in Application Insights.

Vantaggi del rilevamento intelligenteBenefits of Smart Detection

I normali avvisi relativi alla metrica indicano che potrebbe essersi verificato un problema.Ordinary metric alerts tell you there might be a problem. Tuttavia, la funzionalità di rilevamento intelligente avvia automaticamente i processi di diagnostica ed esegue diverse analisi che altrimenti l'utente dovrebbe eseguire manualmente.But Smart Detection starts the diagnostic work for you, performing a lot of the analysis you would otherwise have to do yourself. Si ottengono risultati ben strutturati che consentono individuare rapidamente le cause del problema.You get the results neatly packaged, helping you to get quickly to the root of the problem.

FunzionamentoHow it works

Il rilevamento intelligente monitora i dati di telemetria ricevuti dall'app e, in particolare, le frequenze degli errori.Smart Detection monitors the telemetry received from your app, and in particular the failure rates. Questa regola conta il numero di richieste per cui la proprietà Successful request è false e il numero di chiamate alle dipendenze per cui la proprietà Successful call è false.This rule counts the number of requests for which the Successful request property is false, and the number of dependency calls for which the Successful call property is false. Per le richieste, per impostazione predefinita, Successful request == (resultCode < 400) a meno che sia stato scritto codice personalizzato per filtrare o generare particolari chiamate TrackRequest.For requests, by default, Successful request == (resultCode < 400) (unless you have written custom code to filter or generate your own TrackRequest calls).

Le prestazioni dell'applicazione hanno un modello di comportamento tipico.Your app’s performance has a typical pattern of behavior. Alcune richieste o chiamate alle dipendenze saranno più soggette a errori di altre e la frequenza degli errori generale potrebbe aumentare proporzionalmente al carico.Some requests or dependency calls will be more prone to failure than others; and the overall failure rate may go up as load increases. Il rilevamento intelligente si avvale del servizio Machine Learning per trovare queste anomalie.Smart Detection uses machine learning to find these anomalies.

Man mano che i dati di telemetria vengono inviati dall'app Web ad Application Insights, la funzionalità di rilevamento intelligente confronta il comportamento corrente con i modelli rilevati negli ultimi giorni.As telemetry comes into Application Insights from your web app, Smart Detection compares the current behavior with the patterns seen over the past few days. Se viene osservato un incremento anomalo della frequenza degli errori rispetto alle prestazioni precedenti, viene attivata un’analisi.If an abnormal rise in failure rate is observed by comparison with previous performance, an analysis is triggered.

Quando l’analisi viene attivata, il servizio esegue un'analisi cluster della richiesta non riuscita per provare a identificare un modello dei valori che caratterizzano gli errori.When an analysis is triggered, the service performs a cluster analysis on the failed request, to try to identify a pattern of values that characterize the failures. Nell'esempio precedente l'analisi ha rivelato che la maggior parte degli errori riguardano un codice risultato, un nome richiesta, un URL del server host e un’istanza del ruolo specifici.In the example above, the analysis has discovered that most failures are about a specific result code, request name, Server URL host, and role instance. L’analisi ha anche determinato che la proprietà sistema operativo client è distribuita su più valori e perciò non è presente nell’elenco.By contrast, the analysis has discovered that the client operating system property is distributed over multiple values, and so it is not listed.

Quando il servizio viene instrumentato con queste chiamate ai dati di telemetria, l'analizzatore cerca un'eccezione e un errore di dipendenza associati alle richieste identificate nel cluster, con un esempio di qualsiasi log di traccia associato a tali richieste.When your service is instrumented with these telemetry calls, the analyser looks for an exception and a dependency failure that are associated with requests in the cluster it has identified, together with an example of any trace logs associated with those requests.

I risultati dell'analisi vengono inviati all'utente come avviso, a meno che la configurazione attiva preveda di non eseguire questa operazione.The resulting analysis is sent to you as alert, unless you have configured it not to.

Analogamente agli avvisi impostati manualmente, è possibile esaminare lo stato dell'avviso e configurarlo nel pannello Avvisi della risorsa di Application Insights.Like the alerts you set manually, you can inspect the state of the alert and configure it in the Alerts blade of your Application Insights resource. A differenza di altri avvisi, non è però necessario impostare o configurare il rilevamento intelligente.But unlike other alerts, you don't need to set up or configure Smart Detection. Se necessario, è possibile disabilitarlo o modificare gli indirizzi di posta elettronica di destinazione.If you want, you can disable it or change its target email addresses.

Configurare gli avvisiConfigure alerts

È possibile disabilitare il rilevamento intelligente, modificare i destinatari di posta elettronica, creare un webhook o scegliere messaggi di avviso più dettagliati.You can disable Smart Detection, change the email recipients, create a webhook, or opt in to more detailed alert messages.

Aprire la pagina degli avvisi.Open the Alerts page. Le anomalie degli errori sono disponibili con gli eventuali avvisi impostati manualmente e si può vedere se attualmente sono in uno stato di avviso.Failure Anomalies is included along with any alerts that you have set manually, and you can see whether it is currently in the alert state.

Nella pagina Panoramica fare clic sul riquadro Avvisi.

Fare clic sull'avviso per configurarlo.Click the alert to configure it.

Configurazione

Si noti che è possibile disabilitare l'avviso di rilevamento intelligente, ma non eliminarlo (o crearne un altro).Notice that you can disable Smart Detection, but you can't delete it (or create another one).

Avvisi dettagliatiDetailed alerts

Se si seleziona "È possibile ottenere informazioni di diagnostica più dettagliate", il messaggio di posta elettronica conterrà un maggior numero di informazioni di diagnostica.If you select "Get more detailed diagnostics" then the email will contain more diagnostic information. A volte è possibile individuare il problema basandosi solo sui dati contenuti nel messaggio di posta elettronica.Sometimes you'll be able to diagnose the problem just from the data in the email.

Esiste un rischio limitato che un avviso più dettagliato possa contenere informazioni riservate poiché include i messaggi di eccezione e di traccia.There's a slight risk that the more detailed alert could contain sensitive information, because it includes exception and trace messages. Ciò si verifica tuttavia soltanto se il codice permette l'inserimento di informazioni riservate in tali messaggi.However, this would only happen if your code could allow sensitive information into those messages.

Valutazione e diagnosi di un avvisoTriaging and diagnosing an alert

Un avviso indica che è stato rilevato un incremento anomalo nella frequenza delle richieste non riuscite.An alert indicates that an abnormal rise in the failed request rate was detected. È probabile che si sia verificato un problema con l'app o il relativo ambiente.It's likely that there is some problem with your app or its environment.

Dalla percentuale delle richieste e dal numero di utenti interessati è possibile decidere il livello di priorità del problema.From the percentage of requests and number of users affected, you can decide how urgent the issue is. Nell'esempio precedente si ha una percentuale di errori del 22,5% rispetto alla percentuale normale dell'1% e ciò evidenzia sicuramente un'anomalia.In the example above, the failure rate of 22.5% compares with a normal rate of 1%, indicates that something bad is going on. D'altra parte, solo 11 utenti sono stati interessati.On the other hand, only 11 users were affected. Se si fosse trattato di un'app personale, sarebbe stato più semplice valutare la gravità del problema.If it were your app, you'd be able to assess how serious that is.

In molti casi è possibile diagnosticare rapidamente il problema in base al nome della richiesta, alle eccezioni, agli errori di dipendenza e ad altri dati di traccia forniti.In many cases, you will be able to diagnose the problem quickly from the request name, exception, dependency failure and trace data provided.

Esistono alcune altre indicazioni.There are some other clues. Ad esempio, la percentuale di errori di dipendenza in questo esempio è uguale alla percentuale di eccezioni (89,3%).For example, the dependency failure rate in this example is the same as the exception rate (89.3%). Ne consegue che l'eccezione è collegata direttamente all'errore di dipendenza e questo indica chiaramente il punto di partenza per la ricerca dell'errore nel codice.This suggests that the exception arises directly from the dependency failure - giving you a clear idea of where to start looking in your code.

Per approfondire l'analisi, i collegamenti in ogni sezione consentono di passare direttamente a una pagina di ricerca filtrata in base alle richieste, all'eccezione, alla dipendenza o alla traccia pertinenti.To investigate further, the links in each section will take you straight to a search page filtered to the relevant requests, exception, dependency or traces. In alternativa è possibile aprire il portale di Azure, passare alla risorsa di Application Insights per l'app e aprire il pannello Errori.Or you can open the Azure portal, navigate to the Application Insights resource for your app, and open the Failures blade.

In questo esempio, facendo clic sul collegamento "View dependency failures details" (Visualizza i dettagli degli errori di dipendenza), si apre il pannello di ricerca di Application Insights,In this example, clicking the 'View dependency failures details' link opens the Application Insights search blade. che mostra l'istruzione SQL con un esempio della causa radice: sono stati specificati valori NULL nei campi obbligatori e non è stata superata la convalida durante l'operazione di salvataggio.It shows the SQL statement that has an example of the root cause: NULLs were provided at mandatory fields and did not pass validation during the save operation.

Ricerca diagnostica

Esaminare gli avvisi recentiReview recent alerts

Fare clic su Rilevamento intelligente per accedere all'avviso più recente:Click Smart Detection to get to the most recent alert:

Riepilogo degli avvisi

Qual è la differenzaWhat's the difference ...

Il rilevamento intelligente delle anomalie degli errori integra altre funzionalità simili ma distinte di Application Insights.Smart Detection of failure anomalies complements other similar but distinct features of Application Insights.

  • Gli avvisi metrica vengono impostati dall'utente e possono monitorare un'ampia gamma di metriche, ad esempio utilizzo della CPU, frequenza delle richieste, tempi di caricamento delle pagine e così via.Metric Alerts are set by you and can monitor a wide range of metrics such as CPU occupancy, request rates, page load times, and so on. È possibile usarli per avvisare l'utente, ad esempio, se è necessario aggiungere altre risorse.You can use them to warn you, for example, if you need to add more resources. Al contrario, il rilevamento intelligente delle anomalie degli errori copre una gamma ristretta di metriche critiche (attualmente solo la percentuale di richieste non riuscite), progettate per inviare notifiche quasi in tempo reale dopo l'aumento significativo della percentuale di richieste non riuscite dell'app Web rispetto al comportamento normale della stessa app Web.By contrast, Smart Detection of failure anomalies covers a small range of critical metrics (currently only failed request rate), designed to notify you in near real time manner once your web app's failed request rate increases significantly compared to web app's normal behavior.

    Il rilevamento intelligente adatta automaticamente la soglia in risposta alle condizioni attuali.Smart Detection automatically adjusts its threshold in response to prevailing conditions.

    Il rilevamento intelligente avvia automaticamente le attività di diagnostica.Smart Detection starts the diagnostic work for you.

  • Il rilevamento intelligente delle anomalie delle prestazioni usa l'intelligenza artificiale per individuare modelli insoliti nelle metriche, senza richiedere alcuna configurazione.Smart Detection of performance anomalies also uses machine intelligence to discover unusual patterns in your metrics, and no configuration by you is required. A differenza del rilevamento intelligente delle anomalie degli errori, tuttavia, lo scopo del rilevamento intelligente delle anomalie delle prestazioni è trovare i segmenti dei molteplici modi di utilizzo che potrebbero essere gestiti in modo non corretto, ad esempio da pagine specifiche in un tipo specifico di browser.But unlike Smart Detection of failure anomalies, the purpose of Smart Detection of performance anomalies is to find segments of your usage manifold that might be badly served - for example, by specific pages on a specific type of browser. L'analisi viene eseguita ogni giorno e se viene trovato un risultato, è probabilmente molto meno urgente di un avviso.The analysis is performed daily, and if any result is found, it's likely to be much less urgent than an alert. Al contrario, l'analisi per le anomalie degli errori viene eseguita continuamente sui dati di telemetria in ingresso e l'utente riceverà una notifica entro pochi minuti se la percentuale di errori del server è superiore a quella prevista.By contrast, the analysis for failure anomalies is performed continuously on incoming telemetry, and you will be notified within minutes if server failure rates are greater than expected.

Se si riceve un avviso di rilevamento intelligenteIf you receive a Smart Detection alert

Perché ho ricevuto questo avviso?Why have I received this alert?

  • È stato rilevato un incremento anomalo delle richieste non riuscite rispetto al valore normale del periodo precedente.We detected an abnormal rise in failed requests rate compared to the normal baseline of the preceding period. Dopo aver analizzato errori e dati di telemetria associati, si consiglia di esaminare più approfonditamente l'eventuale problema.After analysis of the failures and associated telemetry, we think that there is a problem that you should look into.

La notifica indica la sicura presenza di un problema?Does the notification mean I definitely have a problem?

  • Gli avvisi vengono emessi in caso di interruzione dell'app o di riduzione delle prestazioni, ma solo l'utente può comprendere completamente la semantica e l'impatto del problema sull'app o gli utenti.We try to alert on app disruption or degradation, but only you can fully understand the semantics and the impact on the app or users.

Il servizio implica l'accesso manuale ai dati da parte di Microsoft?So, you guys 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.

Va eseguita una sottoscrizione a questo avviso?Do I have to subscribe to this alert?

  • No.No. In ogni applicazione che invia dati di telemetria della richiesta è presente la regola di avviso per il rilevamento intelligente.Every application that sends request telemetry has the Smart Detection alert rule.

È possibile annullare la sottoscrizione oppure ottenere le notifiche inviate ai colleghi?Can I unsubscribe or get the notifications sent to my colleagues instead?

  • Sì. In Regole di avviso fare clic sulla regola per il rilevamento intelligente per configurarla.Yes, In Alert rules, click the Smart Detection rule to configure it. È possibile disabilitare l'avviso o modificare i destinatari dell'avviso.You can disable the alert, or change recipients for the alert.

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?

  • In Log attività.In the Activity logs. In Azure aprire la risorsa di Application Insights per l'app e quindi selezionare Log attività.In Azure, open the Application Insights resource for your app, then select Activity logs.

Alcuni avvisi segnalano problemi noti che è inutile ricevere.Some of the alerts are about known issues and I do not want to receive them.

  • Nel backlog è disponibile una funzionalità per eliminare gli avvisi.We have alert suppression on our backlog.

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?