Application Insights, Azure
En este post vamos a realizar un video tutorial sobre la monitorización con Application Insights en Azure.
¿Qué es Application Insights?
Application Insights es una característica de Azure Monitor que es un servicio de Application Performance Management (APM) extensible para desarrolladores y profesionales de DevOps. Se usa para supervisar las aplicaciones en directo. Detectará automáticamente anomalías en el rendimiento e incluye eficaces herramientas de análisis que le ayudan a diagnosticar problemas y para saber lo que hacen realmente los usuarios con la aplicación. Está diseñado para ayudarle a mejorar continuamente el rendimiento y la facilidad de uso. Funciona con diversas aplicaciones y en una amplia variedad de plataformas, como .NET, Node.js o Java EE, hospedadas en el entorno local, de forma híbrida o en cualquier nube pública.
Puede supervisar y analizar la telemetría de aplicaciones móviles mediante la integración con Visual Studio App Center.
¿Para qué sirve?
Hay que instalar un pequeño paquete de instrumentación en la aplicación y configurar un recurso de Application Insights en el portal de Microsoft Azure. El paquete de instrumentación supervisa la aplicación y envía los datos de telemetría a Azure Monitor. (La aplicación se puede ejecutar en cualquier lugar; no tiene que estar hospedada en Azure).
No solo puede instrumentar la aplicación de servicio web, sino también todos los componentes en segundo plano y JavaScript en las propias páginas web.
https://docs.microsoft.com/es-es/azure/azure-monitor/app/app-insights-overview
Tutorial
Para poder entender mejor qué es y para qué sirve, realizaremos un sencillo tutorial en el que supervisaremos la cantidad de “likes” que obtienen los artículos de una tienda online, monitorizándolo en Azure.
Algo muy simple y sencillo de entender.
- Para ello comenzaremos creando un nuevo recurso Application Insights en Azure portal
- Tras esto necesitaremos crear un nuevo proyecto MVC Core en Visual Studio o bien utilizar uno existente, al cual le deberemos enlazar Application Insights.
Para ello botón derecho sobre connected services de nuestro proyecto y Add connected service. Seleccionaremos Monitoring with application insights
Seleccionamos Get Started.
Y el ya nos configura todo por defecto al ser un proyecto core. En caso de no ser un proyecto Core habrá que añadir las trazas
Una vez hecho esto debemos volver al portar de Azure para recuperar la clave de instrumentación de nuestro recurso
Esta clave es necesaria para enlazar nuestra aplicación con Azure debemos comprobar que la haya creado correctamente en el archivo appsettings.json.
Ahora nuestra aplicación debe ser consciente de que usaremos Application Insights; dentro de program.cs indicaremos al servidor que utilizará Application Insights.
Una vez hecho esto debemos actualizar e instalar los Nugets;
Actualizar a su última versión.
Instalar.
En la clase Startup.cs y en el método Configure() indicamos que utilizaremos las trazas de Azure Application Insights, con la método Services.AddApplicationInsightsTelemetry()
- Una vez tenemos el recurso creado en Azure y bien enlazado y configurado con nuestro proyecto, ya estamos preparado para empezar a crear métricas personalizadas;
Para este ejemplo crearé dos métricas por camiseta; una para los like y otra para dislike, de esta forma podre monitorizar a cuantos usuarios les gusta a cada articulo o por el contrario no les ha gustado.
En este metodo diferencio entre like y dislike para crear dos grupos;
Primero creo una traza;
Trace.TraceInformation("La " + camiseta + " ha recibido un " + like);
Esta línea la podre observar desde Azure en tiempo real desde livemetricstream
Tras esto crearemos la métrica personalizada
metricaLike.Name será el nombre de nuestra métrica “custom”.
metricaLike.Sum será la suma de likes recibidos por cada camiseta desde la vista le mando un valor numero de 1 en la variable count;
Ahora es momento de ir a Azure y comprobar que las métricas se han añadido correctamente.
En la barra de tareas de Azure seleccionamos MÉTRICAS
Ahora seleccionaremos las métricas custom, que serán las que hemos creado nosotros anteriormente
Por último es momento de seleccionar la que queramos monitorizar, podemos seleccionar varias para así compararlas
Resultado de comparar dos métricas;
Podemos observar que ha tenido 6 me gusta frete a 8 no me gusta la hora a la que se han dado si quisiéramos también podríamos saber que usuario ha sido, y de esta manera podríamos decidir quitar artículos de nuestra tienda por falta de acogida de nuestros clientes, también podríamos saber el horario en el que nuestros clientes nos visitan, todo ello en tiempo real y sin necesidad de utilizar base de datos. En fin monitorizar nuestra aplicación con Application Insights nos permite estar actualizados de todo lo que ocurre y en tiempo real.
Autor: Ignacio Caballero Ruiz.
Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin.
Centro: Tajamar
Año académico: 2019-2020.
Código / recursos utilizados / Otros datos de interés: https://github.com/Donignacio91/Post.git
http://www.linkedin.com/in/ignacio-caballero-ruiz