Azure Application Insights

Application Insights es un servicio que está disponible en modo preview en el portal de Azure y que proporciona información completa sobre las aplicaciones desplegadas en tiempo real.

Es una solución end to end que recopila datos de telemetría y los envía a la nube para su procesamiento y para que estén disponibles para ser consultados.

Este servicio se basa en tres pilares principales:

  • Vista de 360 grados de toda la aplicación: proporciona información detallada sobre la adopción por parte de los usuarios, interacción de los usuarios, disponibilidad y rendimiento.
  • Proporciona un conjunto de herramientas de exploración muy potentes permitiendo identificar de manera rápida los problemas, el impacto de estos en los clientes y priorizar en base a eso.
  • Proporciona un servicio de análisis para casi todas las aplicaciones o servicios. Viene como parte de Visual Studio para desarrolladores ASP.NET y hay SDKs para la mayoría de las plataformas, incluyendo Javascript, IOS, Android, Java, Ruby, Python etc..

Application Insights está diseñado para ayudar a los desarrolladores a mejorar la usabilidad y rendimiento de su aplicación.  Con esta herramienta es posible:

  • Analizar patrones de uso para comprender mejor a los usuarios: número de visitas por página, nuevos usuarios, usuarios recurrentes, geolocalización, plataformas, seguimiento de la navegación de los clientes a través de las páginas etc...
  • Detectar y diagnosticar errores de rendimiento y solucionarlos antes de que la mayoría de los usuarios lo perciban: métricas de tiempo de respuesta, uso de CPU, test de disponibilidad para web apps, reporte de excepciones y alertas etc...

Los SDKs de las diversas plataformas contienen módulos que permiten monitorizar las aplicaciones, pero es posible también la codificación por parte del desarrollador de la telemetría para obtener información más detallada o específica.  Todos los datos recopilados de la aplicación se almacenan en el portal de Azure y pueden ser exportados a SQL, Power BI o herramientas propias.

A continuación, vamos a ver un ejemplo de cómo configurar Application Insights en una aplicación de ASP.NET.

Lo primero que hacemos es abrir Visual Studio y crear un nuevo proyecto de ASP.NET. Cuando se abra la ventana de creación de un nuevo proyecto debemos marcar el check de Application Insights.

App Insight 1

Si ya tenemos un proyecto creado y queremos añadirle Application Insights, abrimos el proyecto en Visual Studio, pulsamos con el botón derecho sobre el proyecto y seleccionamos Add Application Insights Telemetry.

App Insight 2

Tanto para crear una aplicación de cero con Application Insights como para añadirlo a un proyecto existente tendremos que introducir nuestras credenciales. Una vez se haya validado el usuario se muestra un asistente para la configuración del servicio en el que tendremos que elegir la suscripción en la que queremos darlo de alta.

Una vez ya tenemos el proyecto con Application Insights, si pulsamos con el botón derecho sobre el proyecto vemos que tenemos una nueva opción en el menú. Desde aquí nos permite abrir el servicio, configurarlo o buscar.

App Insight 3

Si pulsamos en abrir nos llevará directamente al portal de Azure para ver los datos de telemetría. Si seleccionamos configurar o buscar nos abrirá un asistente de Visual Studio para realizar esas acciones (cambiar la configuración o buscar en la telemetría).

Pulsamos F5 para ejecutar la aplicación y realizamos algunas acciones en la página. Volvemos a Visual Studio y vemos que se han registrado las acciones que hemos realizado y que podemos verlas.

App Insight 4

Una vez hemos generado datos vamos a ir al portal para ver esos datos como se muestran. podemos acceder desde Visual Studio como hemos comentado anteriormente o a través del portal en el apartado Application Insights.

App Insight 5

En este apartado podemos ir viendo los distintos datos que se van recogiendo, por ejemplo el tempo de respuesta del servidor, el número de peticiones y el número de peticiones fallidas.

El tiempo de visita de cada página se puede configurar añadiendo un script a cada página que queramos monitorizar.

App Insight 6

Es posible añadir alertas sobre multitud de métricas como la disponibilidad, el número de excepciones, el tiempo de carga de la página y muchas más.

App Insight 7

También podemos configurar tests a la página desde distintas localizaciones para ver la respuesta de la página y el tiempo que tarda en darla. En caso de que el test devuelva un resultado fallido es posible generar alertas.

App Insight 8

 

La detección proactiva se puede configurar también desde está página y consiste en un sistema que detecta de forma automática comportamientos anómalos en la página a partir de la telemetría recogida.  Por ejemplo, detecta si la aplicación va lenta en alguna versión determinada de un sistema operativo o tiene una respuesta más lenta en determinadas zonas geográficas.

App Insight 9

En la parte superior de la ventana encontramos una serie de opciones.

Metrics Explorer permite configurar una serie de gráficos con la información que nos sea útil. Esto permite de un solo vistazo hacernos una idea del estado de la aplicación.  Se pueden configurar todos los gráficos que se necesiten.

App Insight 10

En el apartado de Time Range podemos seleccionar qué franja de tiempo queremos qué aplique a los gráficos.

App Insight 11

El ejemplo que acabamos de ver es en el caso de que tengamos una página web, pero también podemos monitorizar aplicaciones móviles y Cloud Services.

A continuación, vamos a ver un ejemplo de cómo añadir Application Insights a una aplicación de Windows 10, es decir a una aplicación universal (Universal Windos Platform) que podemos desplegar en cualquier dispositivo que lleve Windows 10 como un móvil o un ordenador.

Lo primero que haremos será crear un recurso de Application Insights desde el portal de Azure. En Application Type seleccionaremos Windows Store Application.

App Insight 12

Tras unos segundos se creará el servicio. Debemos seleccionar la Instrumentation Key ya que la necesitaremos para introducirla en nuestra aplicación.

App Insight 13

A continuación, vamos a Visual Studio y creamos un nuevo proyecto de Universal Windows APP. Seleccionamos el check de Show Telemetry in the Windows Dev Center.

App Insight 14

Una vez se ha creado el proyecto debemos añadir el paquete de Application Insights para aplicaciones de Windows.

App Insight 15

Vemos que hay un fichero de configuración del servicio. Lo abrimos e introducimos la Instrumentation Key que hemos recogido del portal.

App Insight 16 App Insight 17

Cuando la aplicación se inicie se realizará una llamada al método Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync().

App Insight 18

La aplicación ya está lista para empezar a recopilar telemetría. Si la ejecutamos se nos mostrará un mensaje indicando que la aplicación está recogiendo telemetría y que podemos acceder al portal para ver los datos, igual que en el caso de la web de ASP.NET.

App Insight 19

Como hemos visto Application Insights es una herramienta muy potente que nos permite extraer información de todo lo que está pasando con nuestra aplicación. Para más información sobre este servicio puedes acceder a la página de documentación del servicio.

 

Beatriz García Roces

Technical Evangelist Intern

@BeRoces