Presentazione del monitoraggio del servizio cloudIntroduction to Cloud Service Monitoring

È possibile monitorare le metriche di prestazioni chiave per qualsiasi servizio cloud.You can monitor key performance metrics for any cloud service. Ogni ruolo del servizio cloud raccoglie dati minimi: utilizzo della CPU, utilizzo della rete e utilizzo del disco.Every cloud service role collects minimal data: CPU usage, network usage, and disk utilization. Se il servizio cloud ha l'estensione Microsoft.Azure.Diagnostics applicata a un ruolo, tale ruolo può raccogliere altri dati.If the cloud service has the Microsoft.Azure.Diagnostics extension applied to a role, that role can collect additional points of data. Questo articolo fornisce un'introduzione a Diagnostica di Azure per Servizi cloud.This article provides an introduction to Azure Diagnostics for Cloud Services.

Con il monitoraggio di base, i dati dei contatori delle prestazioni provenienti dalle istanze del ruolo sono campionati e raccolti a intervalli di 3 minuti.With basic monitoring, performance counter data from role instances is sampled and collected at 3-minute intervals. Questi dati di monitoraggio di base non vengono salvati nell'account di archiviazione e non hanno alcun costo aggiuntivo.This basic monitoring data is not stored in your storage account and has no additional cost associated with it.

Con il monitoraggio avanzato, altre metriche vengono campionate e raccolte a intervalli di 5 minuti, 1 ora e 12 ore.With advanced monitoring, additional metrics are sampled and collected at intervals of 5 minutes, 1 hour, and 12 hours. I dati aggregati vengono salvati in un account di archiviazione all'interno di tabelle e vengono eliminati dopo 10 giorni.The aggregated data is stored in a storage account, in tables, and is purged after 10 days. L'account di archiviazione usato è configurato per ruolo; è possibile usare account di archiviazione diversi per ruoli diversi.The storage account used is configured by role; you can use different storage accounts for different roles. Questo è configurato con una stringa di connessione nei file con estensione .csdef e .cscfg.This is configured with a connection string in the .csdef and .cscfg files.

Monitoraggio di baseBasic monitoring

Come indicato nell'introduzione, un servizio cloud raccoglie automaticamente i dati di monitoraggio di base dalla macchina virtuale host.As stated in the introduction, a cloud service automatically collects basic monitoring data from the host virtual machine. Questi dati includono percentuale della CPU, in/out di rete e lettura/scrittura su disco.This data includes CPU percentage, network in/out, and disk read/write. I dati di monitoraggio raccolti vengono visualizzati automaticamente nelle pagine di panoramica e metriche del servizio cloud, nel portale di Azure.The collected monitoring data is automatically displayed on the overview and metrics pages of the cloud service, in the Azure portal.

Il monitoraggio di base non richiede un account di archiviazione.Basic monitoring does not require a storage account.

Riquadri del monitoraggio di base del servizio cloud

Monitoraggio avanzatoAdvanced monitoring

Il monitoraggio avanzato comporta l'uso dell'estensione Diagnostica di Azure (e facoltativamente di Application Insights SDK) sul ruolo che si vuole monitorare.Advanced monitoring involves using the Azure Diagnostics extension (and optionally the Application Insights SDK) on the role you want to monitor. L'estensione di diagnostica usa un file di configurazione (per ruolo) denominato diagnostics.wadcfgx per configurare le metriche di diagnostica monitorate.The diagnostics extension uses a config file (per role) named diagnostics.wadcfgx to configure the diagnostics metrics monitored. L'estensione Diagnostica di Azure raccoglie e archivia i dati in un account di archiviazione di Azure.The Azure Diagnostic extension collects and stores data in an Azure Storage account. Queste impostazioni vengono configurate nei file .wadcfgx, .csdef e .cscfg.These settings are configured in the .wadcfgx, .csdef, and .cscfg files. Il monitoraggio avanzato comporta perciò un costo aggiuntivo.This means that there is an extra cost associated with advanced monitoring.

In fase di creazione, Visual Studio aggiunge a ogni ruolo l'estensione Diagnostica di Azure.As each role is created, Visual Studio adds the Azure Diagnostics extension to it. Questa estensione di diagnostica può raccogliere i tipi di informazioni seguenti:This diagnostics extension can collect the following types of information:

  • Contatori delle prestazioni personalizzatiCustom performance counters
  • Log applicazioniApplication logs
  • Registri eventi di WindowsWindows event logs
  • Origine degli eventi .NET.NET event source
  • Log di IISIIS logs
  • ETW basato su manifestoManifest based ETW
  • Dump di arresto anomalo del sistemaCrash dumps
  • Log degli errori dei clientiCustomer error logs

Importante

Tutti questi dati vengono aggregati nell'account di archiviazione, ma il portale non fornisce un modo nativo per rappresentarli graficamente.While all this data is aggregated into the storage account, the portal does not provide a native way to chart the data. È consigliabile integrare un altro servizio, come ad esempio Application Insights, nell'applicazione.It is highly recommended that you integrate another service, like Application Insights, into your application.

Configurare l'estensione di DiagnosticaSetup diagnostics extension

In primo luogo, se non si ha già un account di archiviazione classico, crearne uno.First, if you don't have a classic storage account, create one. Verificare che l'account di archiviazione sia creato con il modello di distribuzione classica specificato.Make sure the storage account is created with the Classic deployment model specified.

Quindi passare alla risorsa Account di archiviazione (classico).Next, navigate to the Storage account (classic) resource. Selezionare Impostazioni > Chiavi di accesso e copiare il valore Stringa di connessione primaria.Select Settings > Access keys and copy the Primary connection string value. Questo valore è necessario per il servizio cloud.You need this value for the cloud service.

Per poter abilitare la diagnostica avanzata, è necessario modificare i due file di configurazione seguenti: ServiceDefinition.csdef e ServiceConfiguration.cscfg.There are two config files you must change for advanced diagnostics to be enabled, ServiceDefinition.csdef and ServiceConfiguration.cscfg.

ServiceDefinition.csdefServiceDefinition.csdef

Nel file ServiceDefinition.csdef aggiungere una nuova impostazione denominata Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString per ogni ruolo che usa la diagnostica avanzata.In the ServiceDefinition.csdef file, add a new setting named Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString for each role that uses advanced diagnostics. Visual Studio aggiunge questo valore al file quando viene creato un nuovo progetto.Visual Studio adds this value to the file when you create a new project. Se manca, è possibile aggiungerlo adesso.In case it is missing, you can add it now.

<ServiceDefinition name="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WorkerRole name="WorkerRoleWithSBQueue1" vmsize="Small">
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />

Questo definisce una nuova impostazione che deve essere aggiunta a ogni file ServiceConfiguration.cscfg.This defines a new setting that must be added to every ServiceConfiguration.cscfg file.

Molto probabilmente si avranno due file con estensione .cscfg, uno denominato ServiceConfiguration.cloud.cscfg per la distribuzione in Azure e uno denominato ServiceConfiguration.local.cscfg usato per le distribuzioni locali nell'ambiente emulato.Most likely you have two .cscfg files, one named ServiceConfiguration.cloud.cscfg for deploying to Azure, and one named ServiceConfiguration.local.cscfg that is used for local deployments in the emulated environment. Aprire e modificare ogni file con estensione .cscfg.Open and change each .cscfg file. Aggiungere un'impostazione denominata Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString.Add a setting named Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString. Impostare il valore sulla Stringa di connessione primaria dell'account di archiviazione classico.Set the value to the Primary connection string of the classic storage account. Se si vuole usare l'archiviazione locale nel computer di sviluppo, usare UseDevelopmentStorage=true.If you want to use the local storage on your development machine, use UseDevelopmentStorage=true.

<ServiceConfiguration serviceName="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
  <Role name="WorkerRoleWithSBQueue1">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=KWwkdfmskOIS240jnBOeeXVGHT9QgKS4kIQ3wWVKzOYkfjdsjfkjdsaf+sddfwwfw+sdffsdafda/w==" />

      <!-- or use the local development machine for storage
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      -->

Usare Application InsightsUse Application Insights

Quando si pubblica il servizio cloud da Visual Studio, si può scegliere di inviare i dati di diagnostica ad Application Insights.When you publish the Cloud Service from Visual Studio, you are given the option to send the diagnostic data to Application Insights. È possibile creare la risorsa Azure Application Insights in quel momento o inviare i dati a una risorsa Azure esistente.You can create the Application Insights Azure resource at that time or send the data to an existing Azure resource. Il servizio cloud può essere monitorato da Application Insights in termini di disponibilità, prestazioni, errori e utilizzo.Your cloud service can be monitored by Application Insights for availability, performance, failures, and usage. È possibile aggiungere grafici personalizzati ad Application Insights che mostrino i dati più importanti.Custom charts can be added to Application Insights so that you can see the data that matters the most. I dati delle istanze dei ruoli possono essere raccolti con Application Insights SDK nel progetto del servizio cloud.Role instance data can be collected by using the Application Insights SDK in your cloud service project. Per altre informazioni su come integrare Application Insights, vedere Application Insights per Servizi cloud di Azure.For more information on how to integrate Application Insights, see Application Insights with Cloud Services.

Sebbene sia possibile usare Application Insights per visualizzare i contatori delle prestazioni (e le altre impostazioni) specificati tramite l'estensione Diagnostica di Azure, per ottenere un'esperienza più completa è necessario integrare Application Insights SDK nei ruoli di lavoro e Web.Note that while you can use Application Insights to display the performance counters (and the other settings) you have specified through the Windows Azure Diagnostics extension, you only get a richer experience by integrating the Application Insights SDK into your worker and web roles.

Passaggi successiviNext steps