Utilizzare il file di configurazione di Diagnostica Azure

Aggiornamento: novembre 2015

I dati di diagnostica possono essere raccolti importando il modulo Diagnostica nel modello del servizio e configurando le origini dati da cui vengono raccolti questi dati. Per raccogliere i dati di diagnostica, è necessario aggiungere le origini dati alla configurazione del monitoraggio Diagnostica. È possibile configurare il monitor di diagnostica a livello di codice (si applica ad Azure SDK 2.4 e versioni precedenti), tuttavia Azure SDK offre la possibilità di configurare la diagnostica usando un file di configurazione XML (diagnostics.wadcfg). Questo metodo presenta numerosi vantaggi rispetto alla scrittura di codice:

  1. Il modulo Diagnostica viene avviato prima che venga eseguito il metodo OnStart in modo che gli errori che si verificano nelle attività di avvio possano essere rilevati e registrati.

  2. Eventuali modifiche apportate alla configurazione in fase di esecuzione verranno mantenute anche dopo un riavvio.

  3. Le modifiche alla configurazione del modulo Diagnostica non richiedono ricompilazione del codice.

  4. È possibile avviare automaticamente il monitoraggio Diagnostica con una configurazione specifica senza necessità di altro codice (che potrebbe causare un'eccezione che impedirebbe l'avvio del ruolo).

Il comportamento predefinito del modulo Diagnostica prevede la raccolta dei log di traccia e dell'infrastruttura, ma non il trasferimento dei dati nell'account di archiviazione. Se si desidera raccogliere dati oltre ai dati predefiniti, è necessario configurare il monitoraggio Diagnostica in modo appropriato.

In questo argomento viene illustrato come creare il file di configurazione diagnostics.wadcfg XML. Per ulteriori informazioni sul processo di configurazione delle origini dati di diagnostica nell'applicazione, rendendo persistenti e visualizzando i dati di diagnostica nell'account di archiviazione, vedere la pagina relativa all'abilitazione di Diagnostica in Azure.

Nell'elenco seguente sono indicati i percorsi del file di configurazione di diagnostica per i diversi tipi di ruolo:

  • Per i ruoli di lavoro, il file di configurazione si trova nella directory radice del ruolo.

  • Per i ruoli Web, il file di configurazione si trova nella directory bin nella directory radice del ruolo.

Se il file di configurazione si trova in uno di questi percorsi quando viene importato il modulo Diagnostica, le impostazioni predefinite verranno sostituite da quelle configurate tramite il file di configurazione.

Il file di configurazione diagnostics.wadcfg è un documento XML conforme allo schema contenuto in %ProgramFiles%\Microsoft SDKs\Windows Azure\<SDK>\<VersionNumber>\schemas\DiagnosticsConfig201010.xsd, dove <SDK> è l'SDK per gli sviluppatori in uso e <VersionNumber> è la versione. Per ulteriori informazioni sullo schema per questo file XML, vedere Schema di configurazione di Diagnostica di Azure 1.0..

Nell'esempio seguente viene illustrato un esempio di file di configurazione diagnostics.wadcfg. Con questo file di configurazione si raccolgono tutti i tipi di informazioni di diagnostica, pertanto assicurarsi di rimuovere le origini dati che non si desidera raccogliere nell'applicazione.

<?xml version="1.0" encoding="utf-8" ?>
<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"
      configurationChangePollInterval="PT1M"
      overallQuotaInMB="4096">

  <DiagnosticInfrastructureLogs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Logs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Directories bufferQuotaInMB="0"
     scheduledTransferPeriod="PT30M">  
    <!-- FailedRequestLogs and IISLogs are only relevant to Web roles -->
    <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="0" />
    <FailedRequestLogs container="wad-frq" directoryQuotaInMB="0" />
    <IISLogs container="wad-iis" directoryQuotaInMB="0" />
    <DataSources>
      <DirectoryConfiguration container="diagnostics-custom-logs" directoryQuotaInMB="1024">
        <LocalResource name="MyCustomLogs" relativePath="."/>
      </DirectoryConfiguration>     
    </DataSources>
  </Directories>

  <PerformanceCounters bufferQuotaInMB="0" scheduledTransferPeriod="PT30M">
    <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Web roles -->
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Thread Count" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Worker roles -->
    <!-- <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Thread Count" sampleRate="PT30S" /> -->
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Interop(_Global_)\# of marshalling" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Loading(_Global_)\% Time Loading" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR LocksAndThreads(_Global_)\Contention Rate / sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Memory(_Global_)\# Bytes in all Heaps" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Networking(_Global_)\Connections Established" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Remoting(_Global_)\Remote Calls/sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Jit(_Global_)\% Time in Jit" sampleRate="PT30S" />
  </PerformanceCounters>

  <WindowsEventLog bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M">
    <DataSource name="Application!*" />
    <DataSource name="System!*" />
  </WindowsEventLog>

</DiagnosticMonitorConfiguration>

Di seguito viene fornita una panoramica degli elementi XML utilizzati per configurare le origini dati di diagnostica:

  • DiagnosticMonitorConfiguration: contiene le definizioni del set di buffer di dati fissi standard per registrare le informazioni di diagnostica. Per altre informazioni, vedere DiagnosticMonitorConfiguration.

  • DiagnosticInfrastructureLogs: contiene le definizioni delle dimensioni del buffer di dati e il livello e la frequenza di trasferimento dei dati per i log dell'infrastruttura di diagnostica. Per altre informazioni, vedere DiagnosticInfrastructureLogs.

  • Log: contiene le definizioni delle dimensioni del buffer di dati e il livello e la frequenza di trasferimento dei dati per i log di Azure di base. Per altre informazioni, vedere Logs.

  • Directories: contiene le definizioni per il percorso, le dimensioni del buffer di dati e il livello e la frequenza di trasferimento dei dati per i log basati su file definiti. Questo elemento contiene le definizioni per le directory speciali (CrashDumps, FailedRequestLogs e IISLogs) e per quelle create (DataSources). Per altre informazioni, vedere Directories.

  • PerformanceCounters: contiene le definizioni della configurazione dei contatori, delle dimensioni del buffer di dati e il livello e la frequenza di trasferimento dei dati per i dati dei contatori di prestazioni. Per altre informazioni, vedere PerformanceCounters.

    noteNota
    Se si utilizza un'attività di avvio per installare un contatore di prestazioni personalizzato, non è possibile inserire la definizione del contatore nel file di configurazione perché il monitoraggio Diagnostica tenta di utilizzare il contatore prima che venga creato.

  • WindowsEventLog: contiene le definizioni del log, delle dimensioni del buffer di dati e il livello e la frequenza di trasferimento dei dati per i registri eventi di Windows. Per altre informazioni, vedere WindowsEventLog.

Mostra: