Analisi e visualizzazione degli eventi con Application InsightsEvent analysis and visualization with Application Insights

Azure Application Insights è una piattaforma estendibile per la diagnostica e il monitoraggio dell'applicazione.Azure Application Insights is an extensible platform for application monitoring and diagnostics. Include un potente strumento di analisi ed esecuzione di query, visualizzazione e dashboard personalizzabili e altre opzioni tra cui gli avvisi automatizzati.It includes a powerful analytics and querying tool, customizable dashboard and visualizations, and further options including automated alerting. È la piattaforma consigliata per il monitoraggio e la diagnostica di servizi e applicazioni di Service Fabric.It is the recommended platform for monitoring and diagnostics for Service Fabric applications and services. Questo articolo offre informazioni utili per rispondere alle domande frequenti seguentiThis article helps address the following common questions

  • Come si fa a sapere cosa accade all'interno dell'applicazione e dei servizi e a raccogliere dati di telemetriaHow do I know what is going on inside my application and services and gather telemetry
  • Come si possono risolvere i problemi dell'applicazione, in particolare per le comunicazioni tra i serviziHow do I troubleshoot my application, especially services communicating with one another
  • Come si possono ottenere metriche sulle prestazioni dei servizi, ad esempio, tempo di caricamento della pagina o richieste httpHow do I get metrics about how my services are performing, for example, page load time, http requests

Lo scopo di questo articolo è illustrare come ottenere informazioni dettagliate e risolvere i problemi dall'interno di Application Insights.The purpose of this article is to show how to gain insights and troubleshoot from within App Insights. Per informazioni su come installare e configurare Application Insights con Service Fabric, vedere questa esercitazione.If you'd like to learn how to set up and configure AI with Service Fabric, check out this tutorial.

Monitoraggio in Application InsightsMonitoring in App Insights

Application Insights è perfettamente compatibile con l'uso di Service Fabric.Application Insights has a rich out of the box experience when using Service Fabric. Nella pagina di panoramica Application Insights fornisce informazioni chiave sul servizio, ad esempio il tempo di risposta e il numero di richieste elaborate.In the overview page, AI provides key information about your service such as the response time and number of requests processed. Facendo clic sul pulsante 'Cerca' nella parte superiore, è possibile visualizzare un elenco delle richieste recenti nell'applicazione.By clicking the 'Search' button at the top, you can see a list of recent requests in your application. In questa posizione verranno inoltre visualizzate le richieste non riuscite e sarà possibile diagnosticare gli errori che possono verificarsi.Additionally, you would be able to see failed requests here and diagnose what errors may have occurred.

Panoramica di Application Insights

Nel riquadro di destra nell'immagine precedente, esistono due tipi principali di voci nell'elenco: le richieste e gli eventi.On the right panel in the preceding image, there are two main types of entries in the list: requests and events. Le richieste sono chiamate effettuate all'API dell'app tramite richieste HTTP in questo caso, e gli eventi sono gli eventi personalizzati, che fungono da strumenti di telemetria che è possibile aggiungere in qualsiasi punto nel codice.Requests are calls made to the app's API through HTTP requests in this case, and events are custom events, which act as telemetry you can add anywhere in your code. È possibile esplorare ulteriormente la strumentazione delle applicazioni in API di Application Insights per metriche ed eventi personalizzati.You can further explore instrumenting your applications in Application Insights API for custom events and metrics. Quando si fa clic su una richiesta vengono visualizzati ulteriori dettagli come illustrato nella figura seguente, inclusi i dati specifici per Service Fabric, raccolti nel pacchetto NuGet di Application Insights Service Fabric.Clicking on a request would display further details as shown in the following image, including data specific to Service Fabric, which is collected in the AI Service Fabric nuget package. Queste informazioni sono utili per la risoluzione dei problemi e per stabilire qual è lo stato dell'applicazione. È inoltre possibile eseguire ricerche in tutte queste informazioni all'interno di Application Insights.This info is useful for troubleshooting and knowing what the state of your application is, and all of this information is searchable within Application Insights

Dettagli della richiesta di Application Insights

Application Insights include una visualizzazione designata per l'esecuzione di query su tutti i dati in arrivo.Application Insights has a designated view for querying against all the data that comes in. Fare clic su "Esplora metriche" nella parte superiore della pagina Panoramica per passare al portale di Application Insights.Click "Metrics Explorer" on the top of the Overview page to navigate to the AI portal. Qui è possibile eseguire query sugli eventi personalizzati menzionati in precedenza, sulle richieste, le eccezioni, i contatori delle prestazioni e altre metriche usando il linguaggio di query Kusto.Here you can run queries against custom events mentioned before, requests, exceptions, performance counters, and other metrics using the Kusto query language. L'esempio seguente mostra tutte le richieste nell'ultima ora.The following example shows all the requests in the last 1 hour.

Dettagli della richiesta di Application Insights

Per esplorare ulteriormente le funzionalità del portale di Application Insights, passare alla documentazione del portale di Application Insights.To further explore the capabilities of the App Insights portal, head over to the Application Insights portal documentation.

Configurazione di AI con WADConfiguring AI with WAD

Nota

Al momento, si applica solo ai cluster Windows.This is only applicable to Windows clusters at the moment.

Per inviare i dati da WAD ad Azure AI esistono due modalità, realizzabili aggiungendo un sink AI alla configurazione di WAD, come descritto in questo articolo.There are two primary ways to send data from WAD to Azure AI, which is achieved by adding an AI sink to the WAD configuration, as detailed in this article.

Aggiungere una chiave di strumentazione AI durante la creazione di un cluster nel portale di AzureAdd an AI Instrumentation Key when creating a cluster in Azure portal

Aggiunta di un AIKey

Quando si crea un cluster, se la diagnostica è attiva, si visualizzerà un campo facoltativo per immettere una chiave di strumentazione di Application Insights.When creating a cluster, if Diagnostics is turned "On", an optional field to enter an Application Insights Instrumentation key will show. Se si incolla la chiave di Application Insights qui, il sink di Application Insights viene configurato automaticamente nel modello di Resource Manager usato per distribuire il cluster.If you paste your AI Key here, the AI sink is automatically configured for you in the Resource Manager template that is used to deploy your cluster.

Aggiungere il sink AI al modello di Resource ManagerAdd the AI Sink to the Resource Manager template

Nel modello di Resource Manager, in "WadCfg" aggiungere un "Sink" apportando le due modifiche seguenti:In the "WadCfg" of the Resource Manager template, add a "Sink" by including the following two changes:

  1. Aggiungere la configurazione del sink direttamente dopo il completamento della dichiarazione di DiagnosticMonitorConfiguration:Add the sink configuration directly after the declaring of the DiagnosticMonitorConfiguration is completed:

    "SinksConfig": {
        "Sink": [
            {
                "name": "applicationInsights",
                "ApplicationInsights": "***ADD INSTRUMENTATION KEY HERE***"
            }
        ]
    }
    
  2. Includere il sink in DiagnosticMonitorConfiguration aggiungendo la riga seguente nell'elemento DiagnosticMonitorConfiguration di WadCfg (subito prima della dichiarazione di EtwProviders):Include the Sink in the DiagnosticMonitorConfiguration by adding the following line in the DiagnosticMonitorConfiguration of the WadCfg (right before the EtwProviders are declared):

    "sinks": "applicationInsights"
    

In entrambi i frammenti di codice precedenti il nome "applicationInsights" è stato usato per descrivere il sink.In both the preceding code snippets, the name "applicationInsights" was used to describe the sink. Questo non è un requisito e fino a quando il nome del sink è incluso in "sink", è possibile impostare il nome per qualsiasi stringa.This is not a requirement and as long as the name of the sink is included in "sinks", you can set the name to any string.

Attualmente, i log del cluster vengono mostrati come tracce nel visualizzatore di log di Application Insights.Currently, logs from the cluster show up as traces in AI's log viewer. Dato che la maggior parte delle tracce provenienti dalla piattaforma è di tipo "Informazioni", è anche possibile modificare la configurazione del sink per inviare solo i log di tipo "Critico" o "Errore".Since most of the traces coming from the platform are of level "Informational", you can also consider changing the sink configuration to only send logs of type "Critical" or "Error." Questa operazione può essere eseguita aggiungendo i "Canali" al sink, come illustrato in questo articolo.This can be done by adding "Channels" to your sink, as demonstrated in this article.

Nota

Se si usa una chiave di Application Insights errata nel portale o nel modello di Resource Manager, è necessario modificare la chiave e aggiornare il cluster o ridistribuirlo manualmente.If you use an incorrect AI Key either in portal or in your Resource Manager template, you will have to manually change the key and update the cluster / redeploy it.

Configurazione di AI con EventFlowConfiguring AI with EventFlow

Se si usa EventFlow per aggregare gli eventi, assicurarsi di importare il pacchetto NuGet Microsoft.Diagnostics.EventFlow.Output.ApplicationInsights.If you are using EventFlow to aggregate events, make sure to import the Microsoft.Diagnostics.EventFlow.Output.ApplicationInsightsNuGet package. Il codice seguente è obbligatorio nella sezione outputs di eventFlowConfig.json:The following code is required in the outputs section of the eventFlowConfig.json:

"outputs": [
    {
        "type": "ApplicationInsights",
        "instrumentationKey": "***ADD INSTRUMENTATION KEY HERE***"
    }
]

Assicurarsi di apportare le modifiche necessarie nei filtri, nonché di includere altri input, insieme ai rispettivi pacchetti NuGet.Make sure to make the required changes in your filters, as well as include any other inputs (along with their respective NuGet packages).

AI.SDKAI.SDK

È consigliabile usare EventFlow e WAD come soluzioni di aggregazione, in quanto consentono di usare un approccio più modulare alla diagnostica e al monitoraggio. Ad esempio se si vuole modificare l'output da EventFlow non sono necessarie modifiche alla strumentazione effettiva, ma solo una semplice modifica al file di configurazione.It is recommended to use EventFlow and WAD as aggregation solutions, because they allow for a more modular approach to diagnostics and monitoring, i.e. if you want to change your outputs from EventFlow, it requires no change to your actual instrumentation, just a simple modification to your config file. Se, tuttavia, si decide di investire nell'uso di Application Insights e non si desidera passare a un'altra piattaforma, è consigliabile eseguire un'analisi usando il nuovo SDK di AI per l'aggregazione di eventi e l'invio ad AI.If, however, you decide to invest in using Application Insights and are not likely to change to a different platform, you should look into using AI's new SDK for aggregating events and sending them to AI. Ciò significa che non è più necessario configurare EventFlow per l'invio di dati AI, ma si dovrà installare il pacchetto NuGet di Service Fabric di ApplicationInsight.This means that you will no longer have to configure EventFlow to send your data to AI, but instead will install the ApplicationInsight's Service Fabric NuGet package. I dettagli del pacchetto sono disponibili qui.Details on the package can be found here.

Supporto di Application Insights per microservizi e contenitori descrive alcune delle nuove funzionalità su cui si sta lavorando, attualmente ancora in versione beta, che consentono di avere opzioni di monitoraggio con AI pronte all'uso più ricche.Application Insights support for Microservices and Containers shows you some of the new features that are being worked on (currently still in beta), which allow you to have richer out-of-the-box monitoring options with AI. Sono inclusi il rilevamento delle dipendenze, usato nella creazione di un AppMap per tutti i servizi e le applicazioni in un cluster e nella comunicazione tra di essi, e una migliore correlazione delle tracce provenienti dai servizi che consente di conoscere meglio un problema nel flusso di lavoro di un'app o di un servizio.These include dependency tracking (used in building an AppMap of all your services and applications in a cluster and the communication between them), and better correlation of traces coming from your services (helps in better pinpointing an issue in the workflow of an app or service).

Se si sviluppa in .NET e si intende usare alcuni modelli di programmazione di Service Fabric e AI come piattaforma per la visualizzazione e l'analisi dei dati dell'evento e del log, è consigliabile usare la route AI SDK come flusso di lavoro di monitoraggio e diagnostica.If you are developing in .NET and will likely be using some of Service Fabric's programming models, and are willing to use AI as your platform for visualizing and analyzing event and log data, then we recommend that you go via the AI SDK route as your monitoring and diagnostics workflow. Lettura questo articolo e questo argomento per iniziare a usare AI per raccogliere e visualizzare i log.Read this and this to get started with using AI to collect and display your logs.

Dopo aver configurato AI come output per log ed eventi, le informazioni verranno visualizzate nella risorsa AI in pochi minuti.Once you have configured AI as an output for your events and logs, information should start to show up in your AI resource in a few minutes. Passare alla risorsa AI, che consente di accedere al dashboard della risorsa AI.Navigate to the AI resource, which will take you to the AI resource dashboard. Fare clic su Cerca nella barra delle applicazioni per visualizzare le tracce più recenti ricevute e applicare un filtro.Click Search in the AI taskbar to see the latest traces that it has received, and to be able to filter through them.

Esplora metriche è uno strumento utile per la creazione di dashboard personalizzati in base alle metriche che possono essere segnalate da applicazioni, servizi e cluster.Metrics Explorer is a useful tool for creating custom dashboards based on metrics that your applications, services, and cluster may be reporting. Vedere Esaminare le metriche in Application Insights per configurare alcuni grafici per se stessi in base ai dati raccolti.See Exploring Metrics in Application Insights to set up a few charts for yourself based on the data you are collecting.

Facendo clic su Analisi si aprirà il portale di Analisi di Application Insights, dove è possibile eseguire query di eventi e tracce con ambito e operazioni facoltative maggiori.Clicking Analytics will take you to the Application Insights Analytics portal, where you can query events and traces with greater scope and optionality. Per altre informazioni su questo argomento leggere Analytics in Application Insights (Analisi in Application Insights).Read more about this at Analytics in Application Insights.

Passaggi successiviNext steps