2011-01-05 31 views
7

Tengo un número de aplicaciones ejecutándose sobre ASP.NET que deseo monitorear. Las principales cosas que me importan son:Monitoreo .NET Aplicaciones ASP.NET

  • Excepciones: En la actualidad código personalizado que nos enviará por correo electrónico cuando se produce una excepción. Si la aplicación no funciona bien, se bloqueará nuestra perspectiva ... Sé (y uso) elmah, que en parte resuelve el problema, pero sigue siendo una gran tabla de excepciones con una interfaz de usuario bonita (ish). Quiero algo que hace sentido de todas estas excepciones (alertas por ejemplo, grupos excepciones, cuando se producen otras nuevas, me dice lo que los más comunes son que podría enmendar, etc)

  • registro: Actualmente Registramos a los archivos que luego son accesibles a través de una carpeta compartida que grep de dev & cola. ¿Alguien sabe de mejores formas de presentar esta información? En un mundo ideal, quiero asociarlo con excepciones.

  • Rendimiento: los tiempos de solicitud, el uso de memoria, CPU, etc. lo que puedo conseguir estadísticas

supongo esto es probablemente va a ser resuelto por una serie de herramientas, ¿alguien tiene alguna sugerencias?

+1

La mejor manera de resolver problemas de excepción es solucionarlos de inmediato. ¿Por qué tienes excepciones que no has arreglado por tanto tiempo? –

+0

Estoy de acuerdo, pero he heredado una aplicación heredada que estoy tratando de cambiar. La primera tarea es averiguar cuáles son los puntos más fuertes, para saber cómo enfrentar el problema. –

+0

LOL, tuve que verificar su nombre dos veces para asegurarme de que no trabajaba aquí;) –

Respuesta

3

Deberías echarle un vistazo a Gibraltar no lo uso yo mismo pero se ve muy bien! También funciona con nLog y log4net, así que si los utilizas, estás en suerte.

+0

hay muchas buenas sugerencias, pero esta parece ser la más prometedora. Voy a hacer un aumento en esto. Gracias :) –

+1

¡Tenemos buenas noticias! Gibraltar ahora es GRATIS. Más detalles en una respuesta separada a continuación. –

1

En términos de excepciones manejadas o simplemente logging típico vale la pena echarle un vistazo. Siempre configuré nuestro log4net no solo para escribir archivos de texto, sino para agregarlos a la base de datos. De esa forma, l4ndash puede analizarlo fácilmente. Agrupará sus errores, le permitirá ver dónde están ocurriendo cosas malas. Obtiene una licencia de desarrollador libre

Con Elmah, simplemente desplegamos los registros periódicamente. Puede exportar como csv, luego usamos Excel do filter/group the data. No es ideal, pero funciona. Sería bueno escribir un script para automatizar esto un poco más. No he visto mucho más por Elmah.

0

Puede obtener algunas métricas en los tiempos de solicitud (y cualquier otra cosa que se guarde) ejecutando LogParser en los registros de IIS.

1

Primero iría por log4net. SmtpAppender puede esperar que se acumulen N excepciones antes de enviar un correo electrónico y evitar el bloqueo de Outlook. Y log4net también inicia sesión para registrar archivos que pueden almacenarse en unidades de red, leer con cat y grep, etc.

Acerca de las estadísticas, puede realizar un registro de estado/rendimiento con las mismas herramientas, es decir. engendrar un hilo que cada minuto registra el uso de la CPU, etc.

No tengo una respuesta concreta para la primera parte de la pregunta, ya que implica un análisis de registro automático y coalescencia. En la universidad, creamos una herramienta que está diseñada para hacer parte de estas cosas pero que no se aplica a su escenario (pero está integrada en dos vías con log4net).

3

Bueno, tenemos exactamente la misma solución actual. Los correos electrónicos a través de correos electrónicos mi bandeja de entrada y en su mayoría son ignorados. Durante las vacaciones, un error hizo que todos los desarrolladores devolvieran su límite de bandeja de entrada;)

Entonces, ¿hacia dónde vamos con una solución?

  1. Ya generamos clases para todos nuestros entusiastas, rara vez se utilizan en más de un lugar. Esto fue esencialmente el primer paso, pero comenzamos la base de código de esta manera.
  2. Modificamos el generador para crear valores exclusivos de HRESULT para todas las excepciones.
  3. Nuevamente agregamos un generador para crear un archivo de recurso de mensaje .MC para cada excepción.
  4. Ahora, cada excepción puede escribirse en el Registro de eventos de Windows y, por lo tanto, hemos eliminado todos los correos electrónicos, etc., y confiamos en el registro de eventos.
  5. Ahora con un registro de eventos lleno de información, que incluye códigos de mensajes únicos y parámetros para cada excepción, podemos usar herramientas comunes para agregar, supervisar y alertar.

El generador de excepción (antes de las modificaciones anteriormente) está aquí:

Se integra con el estudio visual mediante la sustitución del generador de ResX con esto:

No he publicado aún el generador MC o la generación HRESULT; sin embargo, estará disponible en las ubicaciones anteriores cuando tenga el tiempo.

- ACTUALIZACIÓN -

Todas las herramientas y la fuente están disponibles en línea para esto. Entonces, ¿a dónde voy desde aquí?

  1. descargar el código fuente o binarios a partir de: http://code.google.com/p/csharptest-net/
  2. Echa un vistazo a la ayuda para CmdTool.exe Visual Studio Integration
  3. A continuación, revise la ayuda en Generators for ResX and MC files, hay varias maneras de generar archivos de MC o DLL de mensajes completos de archivos ResX . Elija el enfoque que más le convenga.
  4. CmdTool.exe REGISTER Run para registrar la herramienta con Visual Studio
  5. Crear un archivo ResX como normal, a continuación, cambiar la herramienta personalizada para CmdTool
  6. Usted tendrá que añadir algunas entradas a la resx. En mínimo crear el siguiente:
  7. Ahora usted debería tener una clase de excepción que se generan eventos de registro que escribe.Usted tendrá que construir el archivo de MC como una acción pre/post acumulación con algo como:
    • CSharpTest.Net.Generators.exe RESXTOMESSAGEDLL /output=MyCustomMessages.dll /input=TheProjectWithAResX.csproj
  8. Por último, es necesario registrarlo, ejecute el marco InstallUtil.exe MyCustomMessages.dll

que debería Empezaré hasta que tenga tiempo para documentarlo todo.

0

Hemos creado una aplicación de supervisión simple que se encuentra en el escritorio y se ilumina en rojo cuando hay una excepción escrita en el registro de eventos de una de las aplicaciones en el servidor o escribe un error en la tabla de registro de errores la base de datos. También supervisa el estado de la base de datos, verifica la fragmentación y similares.

El único problema que tenemos con esto es que puede ser un poco intrusivo en el escritorio, ya que sigue apareciendo con un cuadro de mensaje rojo si hay un problema. Sin embargo, lo alienta a solucionarlo lo antes posible.

Actualmente tenemos esto funcionando en varias de las máquinas de desarrollo. La mejora que estamos pensando hacer es tener una aplicación de monitoreo ejecutándose en un servidor que luego publique un feed rss para que la aplicación solo verifique una vez en un lugar, pero podemos consumir la información desde cualquier lugar usando el método que elijamos en ese momento (como a través de nuestros teléfonos cuando no estamos en la oficina).

0

Puede tener una selección de fuentes RSS de su tabla de Excepciones (y otras cosas). Luego puede suscribirse a la fuente RSS en MS Outlook o en cualquier teléfono inteligente. Uso un lector de noticias RSS llamado NewsRob porque me alerta cuando hay algo nuevo.

escribo sobre cómo hacer esto HERE.

Como paso relacionado, he encontrado una manera de notificar a mí mismo cuando algo no sucedió. Ese blog es HERE.

Cuestiones relacionadas