Monitoraggio di applicazioni Docker in Application InsightsMonitor Docker applications in Application Insights

I contatori delle prestazioni e degli eventi del ciclo di vita da contenitori Docker possono essere disegnati in Application Insights.Lifecycle events and performance counters from Docker containers can be charted on Application Insights. Installare l'immagine di Application Insights in un contenitore dell'host. Verranno visualizzati i contatori delle prestazioni per l'host e per le altre immagini.Install the Application Insights image in a container in your host, and it will display performance counters for the host, as well as for the other images.

Con Docker si distribuiscono le app in contenitori leggeri completi di tutte le dipendenze.With Docker, you distribute your apps in lightweight containers complete with all dependencies. Verranno eseguite su tutti i computer host che eseguono un motore Docker.They'll run on any host machine that runs a Docker Engine.

Quando si esegue l'immagine di Application Insights nell'host Docker, si ottengono questi vantaggi:When you run the Application Insights image on your Docker host, you get these benefits:

  • I dati di telemetria del ciclo di vita su tutti i contenitori che sono in esecuzione nell'host - avvio, arresto e così via.Lifecycle telemetry about all the containers running on the host - start, stop, and so on.
  • I contatori delle prestazioni per tutti i contenitori.Performance counters for all the containers. CPU, memoria, utilizzo della rete e altro ancora.CPU, memory, network usage, and more.
  • Se si è installato Application Insights SDK per Java nelle app in esecuzione nei contenitori, tutti i dati di telemetria di tali app avranno proprietà aggiuntive che identificano il contenitore e il computer host.If you installed Application Insights SDK for Java in the apps running in the containers, all the telemetry of those apps will have additional properties identifying the container and host machine. Ad esempio, se si dispone di istanze di un'app in esecuzione in più host, è possibile filtrare facilmente dall'host i dati di telemetria dell'app.So for example, if you have instances of an app running in more than one host, you can easily filter your app telemetry by host.

esempio

Configurare la risorsa di Application InsightsSet up your Application Insights resource

  1. Accedere al portale di Microsoft Azure e aprire la risorsa di Application Insights per l'app o crearne una nuova.Sign into Microsoft Azure portal and open the Application Insights resource for your app; or create a new one.

    Quale risorsa si deve usare?Which resource should I use? Se le app in esecuzione nell'host sono state sviluppate da un altro utente, è necessario creare una nuova risorsa di Application Insights.If the apps that you are running on your host were developed by someone else, then you need to create a new Application Insights resource. Da questo punto vengono visualizzati e analizzati i dati di telemetria.This is where you view and analyze the telemetry. Selezionare "Generale" per il tipo di app.(Select 'General' for the app type.)

    Ma se si è lo sviluppatore delle App, l’augurio è quello di aver aggiunto SDK di Application Insights a ciascuna di esse.But if you're the developer of the apps, then we hope you added Application Insights SDK to each of them. Se sono tutti effettivamente componenti di una singola applicazione business, è possibile configurare tutti gli elementi per inviare i dati di telemetria a una risorsa e si utilizzerà la stessa risorsa per visualizzare i dati delle prestazioni e del ciclo di vita di Docker.If they're all really components of a single business application, then you might configure all of them to send telemetry to one resource, and you'll use that same resource to display the Docker lifecycle and performance data.

    Un terzo scenario è che l’utente abbia sviluppato la maggior parte delle app, ma utilizzi risorse separate per visualizzare i dati di telemetria.A third scenario is that you developed most of the apps, but you are using separate resources to display their telemetry. In tal caso, probabilmente si intende anche creare una risorsa separata per i dati di Docker.In that case, you probably also want to create a separate resource for the Docker data.

  2. Aggiungere il riquadro Docker: scegliere Aggiungi riquadro, trascinare il riquadro Docker dalla raccolta e quindi fare clic su Fine.Add the Docker tile: Choose Add Tile, drag the Docker tile from the gallery, and then click Done.

    esempio

  3. Fare clic sull'elenco a discesa Informazioni di base e copiare la chiave di strumentazione.Click the Essentials drop-down and copy the Instrumentation Key. Questa chiave serve per indicare all'SDK dove inviare i dati di telemetria.You use this to tell the SDK where to send its telemetry.

    esempio

Lasciare aperta la finestra del browser, a cui si tornerà a breve per esaminare la telemetria.Keep that browser window handy, as you'll come back to it soon to look at your telemetry.

Eseguire il monitoraggio di Application Insights sull'hostRun the Application Insights monitor on your host

Ora che è disponibile una posizione in cui visualizzare la telemetria, è possibile configurare l'app dei contenitori che la raccoglierà e invierà.Now that you've got somewhere to display the telemetry, you can set up the containerized app that will collect and send it.

  1. Connettersi all'host Docker.Connect to your Docker host.
  2. Modificare la chiave di strumentazione in questo comando, e poi eseguirlo:Edit your instrumentation key into this command, and then run it:

    
    docker run -v /var/run/docker.sock:/docker.sock -d microsoft/applicationinsights ikey=000000-1111-2222-3333-444444444
    

Solo un'immagine di Application Insights è obbligatoria per ogni host Docker.Only one Application Insights image is required per Docker host. Se l'applicazione viene distribuita su più host di Docker, ripetere il comando in ogni host.If your application is deployed on multiple Docker hosts, then repeat the command on every host.

Aggiornamento dell'appUpdate your app

Se l'applicazione è instrumentata con Application Insights SDK per Java, aggiungere la riga seguente nel file ApplicationInsights.xml nel progetto, sotto l'elemento <TelemetryInitializers>:If your application is instrumented with the Application Insights SDK for Java, add the following line into the ApplicationInsights.xml file in your project, under the <TelemetryInitializers> element:


    <Add type="com.microsoft.applicationinsights.extensibility.initializer.docker.DockerContextInitializer"/> 

Ciò aggiunge informazioni di Docker, come ad esempio il contenitore e l’id dell’host, ad ogni elemento di telemetria inviato dall'app.This adds Docker information such as container and host id to every telemetry item sent from your app.

Visualizzare i dati di telemetriaView your telemetry

Tornare alla risorsa Application Insights nel portale di Azure.Go back to your Application Insights resource in the Azure portal.

Fare clic nel riquadro Docker.Click through the Docker tile.

In breve verranno visualizzati i dati in arrivo dall’app Docker, soprattutto se nel motore Docker sono in esecuzione altri contenitori.You'll shortly see data arriving from the Docker app, especially if you have other containers running on your Docker engine.

Di seguito sono elencate alcune delle visualizzazioni disponibili.Here are some of the views you can get.

Contatori delle prestazioni per host, attività per immaginePerf counters by host, activity by image

esempio

esempio

Fare clic su un nome dell’host o dell’immagine per altri dettagli.Click any host or image name for more detail.

Per personalizzare la visualizzazione, fare clic su un grafico o sull'intestazione della griglia oppure usare Aggiungi grafico.To customize the view, click any chart, the grid heading, or use Add Chart.

Altre informazioni su Esplora metricheLearn more about metrics explorer.

Eventi del contenitore DockerDocker container events

esempio

Per analizzare i singoli eventi, fare clic su Cerca.To investigate individual events, click Search. Eseguire una ricerca e applicare filtri per trovare gli eventi desiderati.Search and filter to find the events you want. Per ottenere altri dettagli, fare clic su qualsiasi evento.Click any event to get more detail.

Eccezioni per nome del contenitoreExceptions by container name

esempio

Contesto Docker aggiunto ai dati di telemetria dell’appDocker context added to app telemetry

Richiesta di dati di telemetria inviata dall'applicazione instrumentata con SDK di Application Insights, arricchita con contesto Docker:Request telemetry sent from the application instrumented with AI SDK, enriched with Docker context:

esempio

Tempo di elaborazione e contatori delle prestazioni di memoria disponibile, arricchiti e raggruppati per nome del contenitore Docker:Processor time and available memory performance counters, enriched and grouped by Docker container name:

esempio

Domande e risposteQ & A

Quali sono i vantaggi di Application Insights rispetto a Docker?What does Application Insights give me that I can't get from Docker?

  • Suddivisione dettagliata dei contatori delle prestazioni in base al contenitore e all'immagine.Detailed breakdown of performance counters by container and image.
  • Integrazione dei dati dell'app e dei contenitori in un unico dashboard.Integrate container and app data in one dashboard.
  • Esportare la telemetria per ulteriori analisi in un database, in Power BI o in un altro dashboard.Export telemetry for further analysis to a database, Power BI or other dashboard.

Come ottenere la telemetria direttamente dall'app?How do I get telemetry from the app itself?

VideoVideo

Passaggi successiviNext steps