Utilizar el archivo de configuración de Diagnósticos de Azure

Actualizado: noviembre de 2015

Los datos de diagnóstico se recopilan importando el módulo de diagnóstico en el modelo de servicio y, a continuación, configurando los orígenes de datos cuyos datos de diagnóstico se van a recopilar. Se deben agregar los orígenes de datos a la configuración del monitor de diagnóstico para recopilar datos de diagnóstico. Puede configurar el monitor de diagnóstico mediante programación (aplicable a Azure SDK 2.4 y versiones inferiores); sin embargo, Azure SDK le ofrece la posibilidad de configurar los diagnósticos mediante un archivo de configuración XML (diagnostics.wadcfg). Este método tiene muchas ventajas comparado con escribir código:

  1. Los diagnósticos se inician antes de ejecutar el método OnStart con objeto de detectar y registrar los errores de las tareas de inicio.

  2. Cualquier cambio realizado en la configuración en tiempo de ejecución se conservará después de reiniciar.

  3. Los cambios en la configuración de diagnóstico no requieren que se vuelva a generar el código.

  4. Puede iniciar automáticamente el monitor de diagnóstico con una configuración concreta sin necesidad de código adicional (este podría producir una excepción que impediría que se iniciara su rol).

El comportamiento predeterminado de los diagnósticos es recopilar registros de infraestructura y de seguimiento, no transferir datos al almacenamiento. Si desea recopilar otros datos además los predeterminados, deberá configurar el monitor de diagnóstico para ello.

En este tema se describe la creación del archivo de configuración XML diagnostics.wadcfg. Para obtener más información acerca del proceso general de configuración de orígenes de datos de diagnóstico en la aplicación, la persistencia de datos de diagnóstico en el almacenamiento y la visualización de esos datos en el almacenamiento, vea Habilitar diagnósticos en Windows Azure.

La lista siguiente identifica las ubicaciones del archivo de configuración de diagnóstico para los distintos tipos de rol:

  • Para los roles de trabajo, el archivo de configuración se encuentra en el directorio raíz del rol.

  • Para los roles web, el archivo de configuración se encuentra en el directorio bin del directorio raíz del rol.

Si el archivo de configuración existe en una de estas ubicaciones al importar el módulo de diagnóstico, el monitor de diagnóstico configura los valores mediante el archivo de configuración en lugar de usar la configuración predeterminada.

El archivo de configuración diagnostics.wadcfg es un documento XML que se ajusta al esquema ubicado en %ProgramFiles%\Microsoft SDKs\Windows Azure\<SDK>\<VersionNumber>\schemas\DiagnosticsConfig201010.xsd, donde <SDK> es el SDK del desarrollador que se está utilizando y <VersionNumber> es la versión. Para obtener más información acerca del esquema de este archivo XML, vea Esquema de configuración de Diagnósticos de Azure 1.0..

En el ejemplo siguiente se muestra un ejemplo del archivo de configuración diagnostics.wadcfg. Este archivo de configuración recopila todos los tipos de información de diagnóstico; asegúrese de quitar los orígenes de datos que no desea recopilar en la aplicación.

<?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>

A continuación se proporciona información general de los elementos XML utilizados para configurar los orígenes de datos de diagnóstico:

  • DiagnosticMonitorConfiguration: contiene las definiciones del conjunto de búferes de datos fijos estándar para el registro y la información de diagnóstico. Para obtener más información, vea DiagnosticMonitorConfiguration.

  • DiagnosticInfrastructureLogs: contiene las definiciones para el tamaño del búfer de datos, así como el nivel y la frecuencia de la transferencia de datos para los registros de infraestructura de diagnósticos. Para obtener más información, vea DiagnosticInfrastructureLogs.

  • Logs: contiene las definiciones para el tamaño del búfer de datos, así como el nivel y la frecuencia de la transferencia de datos para los registros de Windows Azure básicos. Para obtener más información, vea Logs.

  • Directories: contiene las definiciones para la ruta de acceso, el tamaño del búfer de datos y el nivel y la frecuencia de la transferencia de datos para los registros basados en archivos que defina. Este elemento contiene definiciones tanto para los directorios especiales (CrashDumps, FailedRequestLogs e IISLogs) como para los directorios que se creen (DataSources). Para obtener más información, vea Directories.

  • PerformanceCounters: contiene las definiciones para la configuración de contador, el tamaño del búfer de datos y el nivel y la frecuencia de la transferencia de datos para los datos de los contadores de rendimiento. Para obtener más información, vea PerformanceCounters.

    noteNota
    Si utiliza una tarea de inicio para instalar un contador de rendimiento personalizado, no puede incluir la definición del contador en el archivo de configuración debido a que el monitor de diagnóstico intenta utilizar el contador antes de que se cree.

  • WindowsEventLog: contiene las definiciones para el registro, el tamaño del búfer de datos y el nivel y la frecuencia de la transferencia de datos para los registros de eventos de Windows. Para obtener más información, vea WindowsEventLog.

Mostrar: