Introduzione al monitoraggio del servizio cloud (versione classica)

Importante

Servizi cloud (versione classica) è ora deprecato per i nuovi clienti e verrà ritirato il 31 agosto 2024 per tutti i clienti. Le nuove distribuzioni devono usare il nuovo modello di distribuzione basato su Azure Resource Manager, Servizi cloud di Azure (supporto "Extended").

È possibile monitorare le metriche di prestazioni chiave per qualsiasi servizio cloud. Ogni ruolo del servizio cloud raccoglie dati minimi: utilizzo della CPU, utilizzo della rete e utilizzo del disco. Se il servizio cloud ha l’estensione Microsoft.Azure.Diagnostics applicata a un ruolo, tale ruolo può raccogliere più punti di dati. Questo articolo fornisce un'introduzione a Diagnostica di Azure per Servizi cloud.

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. Questi dati di monitoraggio di base non vengono archiviati nell’account di archiviazione e non comportano costi aggiuntivi.

Con il monitoraggio avanzato, vengono campionate più metriche e raccolte a intervalli di 5 minuti, 1 ora e 12 ore. I dati aggregati vengono salvati in un account di archiviazione all'interno di tabelle e vengono eliminati dopo 10 giorni. L’account di archiviazione usato è configurato per ogni ruolo; è possibile usare account di archiviazione diversi per ruoli diversi. Usare una stringa di connessione nei file .csdef e .cscfg per la configurazione.

Monitoraggio di base

Come indicato nell'introduzione, un servizio cloud raccoglie automaticamente i dati di monitoraggio di base dalla macchina virtuale host. Questi dati includono percentuale della CPU, in/out di rete e lettura/scrittura su disco. I dati di monitoraggio raccolti vengono visualizzati automaticamente nelle pagine di panoramica e metriche del servizio cloud, nel portale di Azure.

Il monitoraggio di base non richiede un account di archiviazione.

Riquadri del monitoraggio di base del servizio cloud

Monitoraggio avanzato

Il monitoraggio avanzato comporta l'uso dell'estensione Diagnostica di Azure (e facoltativamente di Application Insights SDK) sul ruolo che si vuole monitorare. L'estensione di diagnostica usa un file di configurazione (per ruolo) denominato diagnostics.wadcfgx per configurare le metriche di diagnostica monitorate. L'estensione Diagnostica di Azure raccoglie e archivia i dati in un account di archiviazione di Azure. Queste impostazioni vengono configurate nei file .wadcfgx, .csdef e .cscfg. Ciò significa che è previsto un costo aggiuntivo associato al monitoraggio avanzato.

In fase di creazione, Visual Studio aggiunge a ogni ruolo l'estensione Diagnostica di Azure. Questa estensione di diagnostica può raccogliere i tipi di informazioni seguenti:

  • Contatori delle prestazioni personalizzati
  • Log applicazioni
  • registri eventi di Windows
  • Origine degli eventi .NET
  • Log di IIS (Internet Information Services)
  • ETW (Event Tracing for Windows) basato su manifesto
  • Log degli errori dei clienti

Importante

Tutti questi dati vengono aggregati nell'account di archiviazione, ma il portale non fornisce un modo nativo per rappresentarli graficamente. È consigliabile integrare un altro servizio, come ad esempio Application Insights, nell'applicazione.

Configurare l'estensione di Diagnostica

In primo luogo, se non si ha già un account di archiviazione classico, crearne uno. Verificare che l'account di archiviazione sia creato con il modello di distribuzione classica specificato.

Quindi passare alla risorsa Account di archiviazione (classico). Selezionare Impostazioni>Chiavi di accesso e copiare il valore Stringa di connessione primaria. Questo valore è necessario per il servizio cloud.

Per poter abilitare la diagnostica avanzata, è necessario modificare i due file di configurazione seguenti: ServiceDefinition.csdef e ServiceConfiguration.cscfg.

ServiceDefinition.csdef

Nel file ServiceDefinition.csdef aggiungere una nuova impostazione denominata Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString per ogni ruolo che usa la diagnostica avanzata. Visual Studio aggiunge questo valore al file quando viene creato un nuovo progetto. Nel caso in cui non sia presente, è possibile aggiungerlo ora.

<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 frammento di codice definisce una nuova impostazione che deve essere aggiunta a ogni file ServiceConfiguration.cscfg.

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. Aprire e modificare ogni file con estensione .cscfg. Aggiungere un'impostazione denominata Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString. Impostare il valore sulla Stringa di connessione primaria dell'account di archiviazione classico. Se si vuole usare l'archiviazione locale nel computer di sviluppo, usare 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 Insights

Quando si pubblica il servizio cloud da Visual Studio, è possibile inviare i dati di diagnostica ad Application Insights. È possibile creare la risorsa Azure Application Insights in quel momento o inviare i dati a una risorsa Azure esistente. Application Insights può monitorare il servizio cloud per disponibilità, prestazioni, errori e utilizzo. È possibile aggiungere grafici personalizzati ad Application Insights che mostrino i dati più importanti. I dati delle istanze dei ruoli possono essere raccolti con Application Insights SDK nel progetto del servizio cloud. Per altre informazioni su come integrare Application Insights, vedere Application Insights per Servizi cloud di Azure.

Anche se è possibile usare Application Insights per visualizzare i contatori delle prestazioni, e le altre impostazioni, specificati tramite l’estensione Diagnostica di Microsoft Azure, è possibile ottenere un’esperienza più completa integrando l’SDK di Application Insights nei ruoli di lavoro e Web.

Passaggi successivi