Monitoreo de Servicios en Azure con Application Insigths

Al hablar de soluciones productivas, y más en un entorno empresarial, es de fundamental importancia poder monitorear la salud de nuestra solución. Dentro de los ambientes On Premise existen diversos mecanismos y software que ayudan a realizar esta tarea. Al pensar en una solución dentro de ambiente cloud, y más cuando nos orientamos al desarrollo sobre PaaS; esta tarea se puede volver compleja y podemos llegar a tener la sensación de “perdida de control”, o desconocimiento sobre el funcionamiento y salud del sistema.

La instrumentación es una de las principales características que distingue a un sistema corporativo y profesional, de uno que no lo es. Es fundamental no solo resolver lo que el negocio requiere, sino hacerlo de una forma en que podamos gobernar el sistema y saber que acción tomar para asegurar su crecimiento saludable.

Típicamente, los sistemas utilizan Performance Counters para exponer información que permite monitorear el funcionamiento interno del sistema, la mayoría de las aplicaciones que utilizamos definen sus propios performance counters, eventos de sistema, logs, trace, etc. Por tal motivo, monitorear la salud de un sistema depende de dos partes:

1. El sistema que desarrollamos debe implementar los mecanismos necesarios para su monitoreo, en función del nivel de control y conocimiento que se quiere tener del mismo en producción. De no hacerlo, corremos el riesgo de que el sistema opere como una caja negra y en producción no sepamos que ocurre.

2. Tener las herramientas correctas para acceder a la información de monitoreo generada por el sistema.

En este caso, utilizaremos Application Insights para monitorear nuestro sistema. Dentro de las capacidades de Applications Insights podemos monitorear los siguientes elementos:

  • Request rates, response times, and failure rates
  • Dependency rates, response times, and failure rates
  • Exceptions
  • Page Views and load performance
  • AJAX calls
  • User and session counts
  • Host Diagnostics
  • Diagnostics trace logs
  • Custom events and metrics

Podemos obtener más información de este servicio aquí.

Para este ejemplo, primero vamos a crear un Cloud Service con una solución Web en MVC:

Seleccionamos nuestro proyecto web, y dentro de la opción “Add” encontraremos la configuración de Applications Insights.

Seleccionamos la cuenta y la suscripción donde vamos a desplegar el servicio:

Una vez finalizado el proceso de configuración:

Una vez configurado, dentro de nuestro proyecto podremos encontrar los siguientes archivos:

Dentro del portal de Azure ya tendremos acceso al servicio de Application Insights:

Al ejecutar nuestra aplicación, incluso en el ambiente local, podremos obtener la información sobre como se comportó el sistema durante la ejecución:

Dentro del portal de Azure lo podemos visualizar de la siguiente manera

Cuando hacemos análisis de problemas dentro de nuestro sistema es importante tener en consideración todas las dependencias que existan, como servicios, repositorios de datos SQL, Storage, etc. Dado que nuestro problema puede provenir tanto de nuestro código como del uso que le damos a alguna de las dependencias.

Dentro de Application Insigths podemos definir todas nuestras dependencias para tener una vista completa del monitoreo de nuestra solución:

Documentación de Application Insights:

https://docs.microsoft.com/es-mx/azure/application-insights/

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s