Inicializar o cambiar la 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 de Windows Azure en el modelo de servicio y, a continuación, configurando los orígenes de datos cuyos datos de diagnóstico se van a recopilar. El monitor de diagnóstico se ejecuta en Windows Azure y en el Emulador de proceso de Microsoft Azure para recopilar datos de diagnóstico para una instancia de rol. Si el módulo de diagnóstico se ha importado en el modelo de servicio de un rol, el monitor de diagnóstico se inicia automáticamente cuando se inicia una instancia del rol. Se deben agregar los orígenes de datos a la configuración del monitor de diagnóstico para recopilar datos de diagnóstico. Si no configura explícitamente el monitor de diagnóstico, se usará la configuración predeterminada cuando se inicie el rol. De forma predeterminada, solo se agregan al monitor de diagnóstico algunos de los orígenes de datos disponibles; debe configurar la recopilación de otros orígenes de datos mediante el archivo diagnostics.wadcfg. Los datos de diagnóstico se recopilarán y almacenarán en la instancia de rol, pero no se conservarán en el almacenamiento a menos que especifique una cuenta de almacenamiento en el archivo ServiceConfiguration.cscfg. Una vez que la aplicación se implemente en Windows Azure, también podrá cambiar de forma remota la configuración del monitor de diagnóstico desde una aplicación que se ejecute fuera de Windows Azure. Para obtener los pasos detallados para habilitar el diagnóstico en una aplicación, vea Habilitar diagnósticos en un servicio en la nube.

Para recopilar datos de diagnóstico, debe importar el módulo de diagnóstico en el modelo de servicio de cada rol cuyos datos de diagnóstico desea recopilar. El módulo se importa agregando un elemento Import al archivo ServiceDefinition.csdef. En el ejemplo siguiente se muestra el elemento Import definido para un rol web:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="WebRole1">
    <!--<Sites> ... </Sites> -->
    <!-- <Endpoints> ... </Endpoints> -->
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
</ServiceDefinition>

Para obtener más información sobre el modo de definir el archivo de definición de servicio y el archivo de configuración de servicio, vea Referencia de esquemas de Windows Azure. Para obtener más información sobre el modo de definir el modelo de servicio de un servicio hospedado, vea Set Up a Hosted Service for Windows Azure.

Los datos de diagnóstico no se conservan en el almacenamiento de forma predeterminada. Para transferir los datos de diagnóstico al almacenamiento, debe definir una cadena de conexión en el archivo ServiceConfiguration.cscfg. En el ejemplo siguiente se muestra cómo definir una cadena de conexión para transferir datos al Emulador de almacenamiento de Microsoft Azure:

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
  <Role name="WebRole1">
    <Instances count="1" />
    <ConfigurationSettings>
    <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

Si desea utilizar una cuenta de almacenamiento de Windows Azure, debe cambiar la cadena de conexión para que incluya un nombre y una clave de cuenta:


<ConfigurationSettings>
   <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<AccountName>;AccountKey=<AccountKey>"/>
</ConfigurationSettings>

Los valores de AccountName y AccountKey se encuentran en el Portal de administración de Windows Azure, en el panel de la cuenta de almacenamiento, bajo Administrar claves de acceso. El protocolo de la cadena de conexión debe ser https.

De forma predeterminada, solo se agregan al monitor de diagnóstico algunos de los orígenes de datos disponibles; debe agregar otros para recopilar tipos específicos de datos de diagnóstico. Para obtener información sobre los tipos de datos de diagnóstico que se pueden configurar para que los recopile la aplicación, vea Orígenes de datos de diagnóstico.

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. Existen varios mecanismos para la configuración de diagnósticos; el más aconsejable para administrar la configuración global de los roles consiste en utilizar el archivo de configuración diagnostics.wadcfg durante la implementación. Para obtener más información, vea Mecanismos de configuración de diagnósticos y orden de prioridad.

Una vez que haya implementado un servicio en la nube, también podrá cambiar de forma remota la configuración del monitor de diagnóstico de su aplicación desde otra aplicación que se ejecute fuera de Windows Azure.

En la versión 1.2 se puede configurar el monitor de diagnóstico mediante programación. Esto ha quedado obsoleto en la versión 1.3 y versiones posteriores. En la versión 1.2, 1.3 y posteriores, Microsoft Azure SDK ofrece la posibilidad de configurar Diagnósticos mediante un archivo de configuración XML (diagnostics.wadcfg) en su lugar. Este método tiene muchas ventajas comparado con escribir código en el método OnStart:

  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).

Para los roles web, el archivo de configuración diagnostics.wadcfg se encuentra en el directorio bin del directorio raíz del rol. Para los roles de trabajo, el archivo de configuración diagnostics.wadcfg se encuentra en el 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. Cuando se implementa el rol web o el rol de trabajo, la información de configuración del archivo diagnostics.wadcfg se escribe en el contenedor wad-control-container de la cuenta de almacenamiento. Para obtener más información sobre el uso del archivo de configuración de diagnóstico, vea Utilizar el archivo de configuración de Diagnósticos de Azure.

El método Start de un objeto DiagnosticMonitorConfiguration se puede utilizar para establecer la configuración de diagnóstico en el método OnStart de un rol. Este método es eficiente para una implementación nueva, pero no lo es para una implementación de actualización, por lo que conviene evitarlo.

noteNota
Esto se aplica a Azure SDK 2.4 y anteriores.

Una vez que haya implementado un servicio en la nube, podrá cambiar de forma remota la configuración del monitor de diagnóstico desde código que se ejecute en otra aplicación externa a Windows Azure mediante la clase DeploymentDiagnosticManager. Desde esta clase, puede modificar los monitores de diagnóstico de una o varias instancias de rol. También puede cambiar la configuración del monitor de diagnóstico de una sola instancia de rol mediante la clase RoleInstanceDiagnosticManager. Para obtener más información, vea Cambiar de forma remota la configuración del monitor de diagnósticos.

noteNota
Esto se aplica a Azure SDK 2.4 y anteriores.

Vea también

Mostrar: