Configuración de la información de diagnóstico

Una de las novedades del Sdk 1.3 de Windows Azure es la aparición de esta opción de configuración que permite activar la recolección de información de diagnóstico y la ubicación dónde se deben generar las trazas.

image

Realmente no es algo que no se pudiese hacer anteriormente, pero lo que hace es simplificar esta acción y sobre todo, que sea fácil seguir la buena práctica de escribir las trazas en Windows Azure Storage.

Activando esta opción se crea una entrada en la sección settings llamada Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString que apunta al Storage dónde queremos que se guarden las trazas.

Antes de la salida del Sdk 1.3 la activación del sistema de trazas se hacía habitualmente en el evento “OnStart” del RoleEntryPoint, haciendo la llamada a DiagnosticMonitor.Start().

A través de las sobrecargas del método Start se podía configurar dónde debían generarse las trazas, por ejemplo al Storage, y toda la configuración que necesitásemos; qué información queremos obtener (trazas, eventos, contadores…), cada cuánto tiempo se debe enviar la información al storage etc…

Con el Sd k1.3 la llamada al evento Start ya no es necesario ,pero ¿dónde podemos establecer el resto de la configuración?

Por ejemplo, dónde podemos indicar que queremos que se capturen las trazas de la aplicación y que éstas se envíen al storage cada 1 minuto?

Pues indicarlo es prácticamente igual que antes. Aquí os dejo el método que se tendría que llamar en el evento “OnStart” del RoleEntryPoint para indicar que se deben coger las trazas de la aplicación y que se deben enviar al storage cada 1 minuto.

 

   1:          private void ConfigureDiagnostics()
   2:          {
   3:              String myConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";
   4:   
   5:              CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(myConnectionString));
   6:           
   7:              DeploymentDiagnosticManager diagnosticManager =
   8:                                  new DeploymentDiagnosticManager(cloudStorageAccount, RoleEnvironment.DeploymentId);
   9:   
  10:              
  11:              RoleInstanceDiagnosticManager roleInstanceDiagnosticManager =
  12:                                  cloudStorageAccount.CreateRoleInstanceDiagnosticManager(
  13:                                               RoleEnvironment.DeploymentId,
  14:                                               RoleEnvironment.CurrentRoleInstance.Role.Name,
  15:                                               RoleEnvironment.CurrentRoleInstance.Id);
  16:   
  17:              DiagnosticMonitorConfiguration diagnosticMonitorConfiguration = roleInstanceDiagnosticManager.GetCurrentConfiguration();
  18:              diagnosticMonitorConfiguration.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0d);
  19:   
  20:              roleInstanceDiagnosticManager.SetCurrentConfiguration (diagnosticMonitorConfiguration); 
  21:          }

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

2 comentarios en “Configuración de la información de diagnóstico”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *