Monitorare le applicazioni multi-componente con Application Insights (anteprima)Monitor multi-component applications with Application Insights (preview)

È possibile monitorare le app che sono costituite da più componenti, ruoli o servizi del server con Azure Application Insights.You can monitor apps that consist of multiple server components, roles, or services with Azure Application Insights. L'integrità dei componenti e le relazioni tra di essi vengono visualizzati in una singola Mappa delle applicazioni.The health of the components and the relationships between them are displayed on a single Application Map. È possibile tracciare le singole operazioni tramite più componenti con correlazione automatica HTTP.You can trace individual operations through multiple components with automatic HTTP correlation. È possibile integrare e correlare la diagnostica del contenitore con i dati di telemetria dell'applicazione.Container diagnostics can be integrated and correlated with application telemetry. Usare una singola risorsa di Application Insights per tutti i componenti dell'applicazione.Use a single Application Insights resource for all the components of your application.

Mappa dell'applicazione multi-componente

Il termine "componente" usato di seguito indica qualsiasi parte funzionante di un'applicazione di grandi dimensioni.We use 'component' here to mean any functioning part of a large application. Ad esempio, una tipica applicazione aziendale può essere costituita dal codice client in esecuzione nei browser Web, in comunicazione con uno o più servizi app Web, che a sua volta usano i servizi di back-end.For example, a typical business application may consist of client code running in web browsers, talking to one or more web app services, which in turn use back end services. I componenti del server possono essere ospitati in locale nel cloud, possono essere ruoli Web e di lavoro di Azure oppure possono essere eseguiti in contenitori come Docker o Service Fabric.Server components may be hosted on-premises on in the cloud, or may be Azure web and worker roles, or may run in containers such as Docker or Service Fabric.

Condivisione di una singola risorsa di Application InsightsSharing a single Application Insights resource

La tecnica chiave consiste nell'inviare i dati di telemetria da ogni componente nell'applicazione alla stessa risorsa di Application Insights, usando la proprietà cloud_RoleName per distinguere i componenti quando necessario.The key technique here is to send telemetry from every component in your application to the same Application Insights resource, but use the cloud_RoleName property to distinguish components when necessary. L'SDK di Application Insights aggiunge la proprietà cloud_RoleName all'emissione dei componenti di telemetria.The Application Insights SDK adds the cloud_RoleName property to the telemetry components emit. Ad esempio, l'SDK aggiungerà un nome del sito Web o il nome del ruolo di servizio alla proprietà cloud_RoleName.For example, the SDK will add a web site name, or service role name to the cloud_RoleName property. È possibile eseguire l'override di questo valore con un Telemetryinitializer.You can override this value with a telemetryinitializer. La mappa delle applicazioni usa la proprietà cloud_RoleName per identificare i componenti sulla mappa.The Application Map uses the cloud_RoleName property to identify the components on the map.

Per altre informazioni su come eseguire l'override dell proprietà cloud_RoleName, vedere Aggiungere proprietà: ITelemetryInitializer.For more information about how do override the cloud_RoleName property see Add properties: ITelemetryInitializer.

In alcuni casi questo può non essere appropriato e si potrebbe preferire l'uso di risorse separate per i diversi gruppi di componenti.In some cases, this may not be appropriate, and you may prefer to use separate resources for different groups of components. Ad esempio, potrebbe essere necessario usare risorse diverse per la gestione o la fatturazione.For example, you might need to use different resources for management or billing purposes. Se si usano risorse separate, non sono visibili tutti i componenti visualizzati in una singola Mappa delle applicazioni e non è possibile eseguire query tra i componenti in Analisi.Using separate resources means that you don't see all the components displayed on a single Application Map; and that you can't query across components in Analytics. È anche necessario configurare le risorse separate.You also have to set up the separate resources.

Con tale avvertenza, nella parte restante di questo documento si presuppone che si desideri inviare dati da più componenti a una risorsa di Application Insights.With that caveat, we'll assume in the rest of this document that you want to send data from multiple components to one Application Insights resource.

Configurare le applicazioni multi-componenteConfigure multi-component applications

Per ottenere una mappa delle applicazioni multi-componente, è necessario raggiungere questi obiettivi:To get a multi-component application map, you need to achieve these goals:

  • Installare l'ultima versione preliminare del pacchetto di Application Insights in tutti i componenti dell'applicazione.Install the latest pre-release Application Insights package in each component of the application.
  • Condividere una singola risorsa di Application Insights per tutti i componenti dell'applicazione.Share a single Application Insights resource for all the components of your application.
  • Abilitare la mappa delle applicazioni multi-ruolo nel pannello Anteprime.Enable Multi-role Application Map in the Previews blade.

Configurare ogni componente dell'applicazione usando il metodo appropriato per il relativo tipo.Configure each component of your application using the appropriate method for its type. (ASP.NET, Java, Node.js, JavaScript.)(ASP.NET, Java, Node.js, JavaScript.)

1. Installare l'ultima versione preliminare del pacchetto1. Install the latest pre-release package

Aggiornare o installare i pacchetti di Application Insights nel progetto per ogni componente del server.Update or install the Application Insights packages in the project for each server component. Se si usa Visual Studio:If you're using Visual Studio:

  1. Fare clic con il pulsante destro del mouse sul progetto e selezionare Gestisci pacchetti NuGet.Right-click a project and select Manage NuGet Packages.
  2. Selezionare Includi versione preliminare.Select Include prerelease.
  3. Se i pacchetti di Application Insights vengono visualizzati negli aggiornamenti, selezionarli.If Application Insights packages appear in Updates, select them.

    In caso contrario, cercare e installare il pacchetto appropriato:Otherwise, browse for and install the appropriate package:

    • Microsoft.ApplicationInsights.WindowsServerMicrosoft.ApplicationInsights.WindowsServer
    • Microsoft.ApplicationInsights.ServiceFabric - per componenti in esecuzione come file eseguibili guest e contenitori Docker in esecuzione nell'applicazione Service FabricMicrosoft.ApplicationInsights.ServiceFabric - for components running as guest executables and Docker containers running a in Service Fabric application
    • Microsoft.ApplicationInsights.ServiceFabric.Native - per reliable services nelle applicazioni di ServiceFabricMicrosoft.ApplicationInsights.ServiceFabric.Native - for reliable services in ServiceFabric applications
    • Microsoft.ApplicationInsights.Kubernetes per i componenti in esecuzione in Docker su KubernetesMicrosoft.ApplicationInsights.Kubernetes for components running in Docker on Kubernetes

2. Condividere una singola risorsa di Application Insights2. Share a single Application Insights resource

  • In Visual Studio fare clic con il pulsante destro del mouse sul progetto e selezionare Configura Application Insights oppure Application Insights > Configurare.In Visual Studio, right-click a project and select Configure Application Insights, or Application Insights > Configure. Per il primo progetto, usare la procedura guidata per creare una risorsa di Application Insights.For the first project, use the wizard to create an Application Insights resource. Per i progetti successivi, selezionare la stessa risorsa.For subsequent projects, select the same resource.
  • Se non è presente alcun menu di Application Insights, configurare manualmente:If there is no Application Insights menu, configure manually:

    1. Nel portale di Azure aprire la risorsa di Application Insights già creata per un altro componente.In Azure portal, open the Application Insights resource you already created for another component.
    2. Nel pannello Panoramica aprire l'elenco a discesa Informazioni di base e copiare la chiave di strumentazione.In the Overview blade, open the Essentials drop-down tab, and copy the Instrumentation Key.
    3. Nel progetto aprire ApplicationInsights.config e inserire:<InstrumentationKey>your copied key</InstrumentationKey>In your project, open ApplicationInsights.config and insert: <InstrumentationKey>your copied key</InstrumentationKey>

Copiare la chiave di strumentazione nel file .config

3. Abilitare la Mappa delle applicazioni multiruolo3. Enable multi-role Application Map

Nel portale di Azure aprire la risorsa per l'applicazione.In the Azure portal, open the resource for your application. Nel pannello Anteprime abilitare Mappa delle applicazioni multiruolo.In the Previews blade, enable Multi-role Application Map.

4. Abilitare la metrica di Docker (facoltativo)4. Enable Docker metrics (Optional)

Se un componente viene eseguito in Docker ospitato in una macchina virtuale Windows di Azure, è possibile raccogliere metriche aggiuntive dal contenitore.If a component runs in a Docker hosted on an Azure Windows VM, you can collect additional metrics from the container. Inserire nel file di configurazione di Diagnostica di Azure:Insert this in your Azure diagnostics configuration file:

"DiagnosticMonitorConfiguration": {
        ...
        "sinks": "applicationInsights",
        "DockerSources": {
                "Stats": {
                    "enabled": true,
                    "sampleRate": "PT1M"
                }
            },
        ...
    }
    ...   
    "SinksConfig": {
        "Sink": [{
            "name": "applicationInsights",
            "ApplicationInsights": "<your instrumentation key here>"
        }]
    }
    ...
}

Usare cloud_RoleName per separare i componentiUse cloud_RoleName to separate components

La proprietà cloud_RoleName è collegata a tutti i dati di telemetria.The cloud_RoleName property is attached to all telemetry. Identifica il componente, il ruolo o il servizio che origina i dati di telemetria.It identifies the component - the role or service - that originates the telemetry. (Non è uguale a cloud_RoleInstance, che separa ruoli identici in esecuzione in parallelo su più processi server o computer.)(It is not the same as cloud_RoleInstance, which separates identical roles that are running in parallel on multiple server processes or machines.)

Nel portale è possibile filtrare o segmentare i dati di telemetria tramite questa proprietà.In the portal, you can filter or segment your telemetry using this property. In questo esempio il pannello Errori viene filtrato per mostrare solo le informazioni dal servizio Web front-end, escludendo gli errori di back-end dell'API di CRM:In this example, the Failures blade is filtered to show just information from the front-end web service, filtering out failures from the CRM API backend:

Grafico della metrica segmentata in base al nome del ruolo Cloud

Tracciare le operazioni tra i componentiTrace operations between components

È possibile tracciare le chiamate da un servizio a un altro eseguite durante l'elaborazione di una singola operazione.You can trace from one component to another, the calls made while processing an individual operation.

Mostrare i dati di telemetria per operazione

Fare clic per visualizzare un elenco correlato di dati di telemetria per questa operazione tra il server Web front-end e l'API di back-end:Click through to a correlated list of telemetry for this operation across the front-end web server and the back-end API:

Ricerca tra i componenti

Passaggi successiviNext steps