El cloud está de moda y cuando lo mezclamos con Microsoft es obligado hablar de Azure. Ya anteriormente en este blog mi compañero Carlos Mendible había dedicado un post a las Application Insights, gestor de rendimiento de aplicaciones.. Y hoy voy a profundizar en este servicio que nos ofrece la nube de Microsoft.
Application Insights es un servicio orientado a desarrolladores que proporciona herramientas para analizar sus aplicaciones y detectar errores de rendimiento y uso. Citando fuentes oficiales (https://docs.microsoft.com/es-es/azure/application-insights/app-insights-overview), y para no dejarme nada, esto es lo que nos ofrece Application Insights:
Herramientas de análisis y diagnóstico:
- Alertas inteligentes y manuales de los índices de error y otras métricas, así como de la disponibilidad.
- Gráficos de las métricas agregadas con el paso del tiempo.
- Búsqueda de diagnósticos en instancias de las solicitudes, excepciones, eventos personalizados, seguimientos de registros, vistas de página, dependencias y llamadas AJAX.
- Análisis: un lenguaje de consulta eficaz a través de los datos de telemetría
- Paneles: utilidad de creación de gráficos para supervisar todos los componentes de la aplicación.
Tipos de telemetría:
- Velocidad de solicitudes HTTP, tiempos de respuesta y niveles de éxito.
- Tarifas de llamadas (HTTP y SQL) de dependencia, tiempos de respuesta, niveles de éxito.
- Seguimiento de excepciones de servidor y cliente.
- Seguimiento de registro de diagnóstico.
- Recuentos de vistas de página, recuentos de usuarios y sesiones, tiempos de carga del explorador y excepciones.
- Tarifas de llamadas AJAX, tiempos de respuesta y niveles de éxito.
- Contadores de rendimiento de servidor.
- Telemetría personalizada de cliente y servidor.
- Segmentación por ubicación de cliente, versión de explorador, versión de sistema operativo, instancia de servidor, dimensiones personalizadas, etc.
- Pruebas de disponibilidad
Pequeño “Jump Start”
Actualmente Visual Studio nos facilita mucho la vida para poder empezar a trabajar con Application Insights. Es tan sencillo como marcar un checkbox en la creación de nuestro proyecto:
Esto creará la siguiente estructura de proyecto:
Al compilar por primera vez configurará Application Insights modificando el archivo appsettings.config añadiendo la InstrumentationKey del servicio que él mismo se ha encargado de crear en Azure.
Si entramos en el portal de Azure veremos el servicio y podremos comprobar su instrumentation key.
Con esto Azure ya está registrando todas las peticiones que realicemos en nuestra aplicación y ya podríamos empezar a analizarla.
Como veis es muy sencillo añadir Application Insights en nuestra aplicación y poder tener un análisis en tiempo real de su rendimiento.
Aunque el ejemplo es con una aplicación web también podemos añadir Application Insights para monitorizar aplicaciones web y servicios cloud de Azure, aplicaciones .net, aplicaciones java, aplicaciones node.js, aplicaciones SharePoint… La lista completa la podéis encontrar en: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-platforms
Conclusiones
Utilizar Application Insights nos permite tener, en pocos clics, un análisis muy completo del rendimiento/funcionamiento de nuestra aplicación. Delante de clientes nos aporta la capacidad de ser proactivos en la resolución de incidencias. Como se pueden configurar alertas personalizadas podemos recibir un correo electrónico cada vez que la aplicación no esté disponible, que el navegador haya lanzado una excepción, que el cliente tarde mucho en procesar las peticiones, que el tiempo de envío sea elevado… incluso existen extensiones, por ejemplo para Nlog, que interceptan las trazas que se generan en la aplicación y las manda para Application Insights y así poderlas consultar desde el portal de Azure sin la necesidad de ir al servidor a mirar los archivos.
Finalmente, es importante destacar, que Application Insights no reduce el rendimiento de nuestra aplicación ya que el envío de los datos se realiza mediante un proceso a parte.
Conoce cómo SOGETI puede ayudarte con esta y otras tecnologías Microsoft. Si quiere saber cómo, visita nuestra web
Software Engineer and Team Lead | Soluciones Microsoft | SOGETI ESPAÑA
Pingback: API Management para todos – itblogsogeti