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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
En el apartado de Time Range podemos seleccionar qué franja de tiempo queremos qué aplique a los gráficos.
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.
Tras unos segundos se creará el servicio. Debemos seleccionar la Instrumentation Key ya que la necesitaremos para introducirla en nuestra aplicación.
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.
Una vez se ha creado el proyecto debemos añadir el paquete de Application Insights para aplicaciones de Windows.
Vemos que hay un fichero de configuración del servicio. Lo abrimos e introducimos la Instrumentation Key que hemos recogido del portal.
Cuando la aplicación se inicie se realizará una llamada al método Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync().
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.
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
Comments
- Anonymous
January 03, 2017
The comment has been removed