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.
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: }
Hola Ibon
Muy interesante.
Una cosilla, cuando pongas código trocéalo en varias lineas, no se ve bien el margen derecho en los readers.
Saludos
Gracias Julio,
Tengo que buscarme otro plugin para Live Writer, con el que tengo ahora al publicar se me pierden los estilos!!