Categorías: Azure

Monitorizando tu Aplicación en Azure con Application Insights

Con la llegada del Cloud, muchas cosas han cambiado. Una de ellas es la forma en la que se desarrolla y se monitoriza la aplicación. Tradicionalmente, cuando se realizaba cualquier desarrollo, introducíamos un log en dicha aplicación (de sobra son conocidas librerías como NLog, Log4Net, etc). Pero ahora, los tiempos han cambiado. Ahora desarrollamos para cualquier aplicación y cualquier dispositivo, lo que nos obliga a tener algún mecanismo mediante el cual podamos monitorizar nuestra aplicación una vez (incluso estando en producción).

En Azure disponemos del servicio Application Insigh. Es un servicio de análisis extensible que supervisa su aplicación activa. Le ayuda a detectar y a diagnosticar problemas de rendimiento y a comprender qué hacen los usuarios realmente con su aplicación. Está diseñado para desarrolladores, para ayudarles a mejorar continuamente el rendimiento y la facilidad de uso de la aplicación.

Pero también es posible utilizarlo para labores de marketing. Se pueden analizar patrones de uso para entender las necesidades de los usuarios y mejorar continuamente la aplicación.

  • Recuentos de vistas de páginas, usurarios nuevos y recurrentes, ubicación geográfica, plataformas y otras estadísticas de uso principales.
  • Seguimiento de las rutas de acceso de uso para evaluar el éxito de cada característica.

Se pueden detectar, evaluar y diagnosticar problemas de rendimiento y corregirlos antes de que la mayoría de los usuarios se den cuenta.

  • Alertas sobre cambios en el rendimiento o bloqueos.
  • Métricas para ayudar a diagnosticar problemas de rendimiento, como tiempos de respuesta, uso de CPU o seguimiento de dependencias.
  • Pruebas de disponibilidad para aplicaciones web.
  • Informes y alertas de excepciones y bloqueos.
  • Búsqueda eficaz de registros de diagnósticos (lo que incluye seguimientos de registro de sus marcos de registro favoritos).

Además este servicio, es posible utilizarlo en muchas plataformas. Applicattion Insigh es un SDK disponible para servidores ASP.NET, Servicios de Azure, Servidores J2EE, Páginas Web, Windows Phone, Xamarin, Joomla, SharePoint, NodeJS, etc. Es decir, un amplio abanico independiente casi de la plataforma en la que estás desarrollando.

Ejemplo Práctico: utilizar Aplicattion Insight en ASP.NET

1. Creación de recursos en Application Insights

Inicia sesión en el Portal de Azure y crea un nuevo recurso de Application Insights. Elige ASP.NET como tipo de aplicación.

Una vez creado el recurso, coge el KeyInstrumentation para poder utilizarlo en nuestra aplicación.

 

 

 

 

 

 

 

 

2. Instala el SDK en su aplicación.

Instala y configura el SDK de Application Insights, varía en función de la plataforma en la que trabaja. En el caso de las aplicaciones de ASP.NET es fácil.

En Visual Studio, edita los paquetes de NuGet de su proyecto de aplicación web. Instala el SDK de Application Insights para aplicaciones web.

Edite ApplicationInsights.config (que la instalación de NuGet agregó). Inserta el siguiente código justo antes de la etiqueta de cierre:

<InstrumentationKey> la clave de instrumentación que copió </InstrumentationKey>

P.D: También es posible agregar este servicio desde la propia creación del proyecto activando un check para utilizar Insights.

3. Ejecución del proyecto

Usa F5 para ejecutar la aplicación y pruébala. Abre varias páginas para generar telemetría. En Visual Studio, aparecerá un recuento de los eventos que se han enviado.

4. Visualización de la telemetría

Vuelve al Portal de Azure y busca el recurso de Application Insights. Desde el mismo disponemos de muchas opciones desde el número de accesos a la aplicación, como el tiempo de respuesta de la misma o inclusive desde que navegadores están accediendo a nuestra aplicación.

Por último, esta información la podemos explotar según nuestras necesidades exportando estos datos a un panel de PowerBI.

5. Personalización de los eventos

Una vez agregamos a nuestra aplicación HDInsights, el servicio ya dispone de una gran cantidad de datos que el SDK envía por defecto y que, en muchas ocasiones, es posible que sea suficiente. Pero habrán casos en los que necesitaremos tener algún evento personalizado para almacenar alguna información relativa a alguna característica propia de nuestro desarrollo. En este caso, podremos hacerlo añadiendo un código como este:

private TelemetryClient telemetry = new TelemetryClient();
telemetry.TrackEvent("WinGame");

Y si consultamos esta información dentro del portal de Azure, podemos visualizar este evento:

Conclusión

Hoy en día la información tiene un valor incalculable. Muchas veces descuidamos la monitorización de nuestros desarrollos, con lo cual perdemos mucha información. La principal ventaja es que podemos encontrar fallos en nuestros desarrollos y la traza de los mismos. Y, por otro lado, podemos saber que características de nuestra aplicación gustan a los usuarios y qué debemos mejorarlas. Azure como buen cloud privado dispone de muchos servicios que nos facilitan la vida a los desarrolladores, con el objetivo de hacer un mejor software.

Compartir
Publicado por
Adrián Díaz

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)