martes, junio 26, 2007

healthMonitoring de ASP.NET

El dia de ayer comente sobre un problema con el sitio del periodico frontera - y que no es la primera vez que sucede -, pues bueno extendiedo un poquito mas sobre el manejo de errores en aplicaciones ASP.NET, hay una forma muy sencilla de pedirle a ASP.NET que nos avise cada vez que se genera un problema en el sitio, esta notificacion puede ser a traves de un correo electronico, el insertar un registro en una base de datos o escribir el problema a la bitacora del sistema operativo.

De esta forma se puede ser un poco proactivo cuando algun problema surge, en lugar de esperar a que alguien nos lo haga saber.

La forma de activar este tipo de notificaciones, es haciendo uso del healthMonitoring, en cual se puede configurar de forma declarativa en el archivo web.config de nuestra aplicacion, algo importante de esta funcionalidad es que no unicamente nos puede servir para reportar errores, sino tambien para monitorear y auditar cuestiones de seguridad - demasiados intentos fallidos de acceso -, cuantas veces se recicla nuestra aplicacion -importante, ya que esto puede ocacionar problemas de rendimiento, entre otras cosas mas.

Para usar healtMonitoring en nuestro sitio, lo primero que tenemos que hacer es definir la seccion healtMonitoring dentro de la seccion de nuestro web.config, despues es necesario indicar los eventos eventos que deseamos capturar, luego se definen los proveedores, es decir a donde vamos a enviar los eventos capturados - email, base de datos, etc - y finalmente las reglas, ya que es posible filtrar ciertos eventos a un proveedor especifico, para mas detalle ver la pagina de ayuda de healtMonitoring en el sitio de MSDN.

Un ejemplo sencillo para recibir notificaciones por correo de cualquier error en nuestro sitio es el siguiente:
<healthMonitoring enabled="true">
<providers>
<add name="EmailProvider"
type="System.Web.Management.SimpleMailWebEventProvider"
from="error@micorreo.com"
to="parami@micorreo.com"
subjectPrefix="Error: algo pasa en misitio.com "
buffer="true"
bufferMode="Notification" />
</providers>
<rules>
<add provider="EmailProvider" name="All App Events" eventName="All Errors" />
</rules>
</healthMonitoring>

Como ven es muy facil con ASP.NET 2.0 mantener nuestro sitio monitoreado en cada momento, y sobre todo no es necesario modificar nuestra aplicacion para que esto suceda, aunque es posible extender las clases del healthMonitoring y generar eventos y proveedores personalizados, que podemos "disparar" desde nuestra aplicacion.

2 comentarios:

Administrador dijo...

Exelente blog una felicitacion me gusto mucho, Administracion

system-mania dijo...

Buen post, sencillo de entender es lo que necesitaba saber. gracias