Cómo construir un panel en Azure Cloud utilizando consultas de App Insights con KQL generadas por un LLM

Cómo construir un panel en Azure Cloud utilizando consultas de App Insights con KQL generadas por un LLM

Tabla de contenidos

Construir un panel robusto y útil en Azure Application Insights con KQL (Kusto Query Language) permite a los equipos de desarrollo monitorear y analizar el rendimiento de su aplicación y el comportamiento de los usuarios. Esta guía te llevará a través de la creación de un panel con ejemplos de KPIs y gráficos correspondientes. No sé nada sobre KQL, pero usaré una LLM para generar las consultas que necesito.

¿Por qué usar App Insights y KQL?

Azure Application Insights es una herramienta poderosa para rastrear la salud, el uso y el rendimiento de tus aplicaciones. Combinado con KQL, proporciona una flexibilidad incomparable para consultar y visualizar datos. Al final de esta guía, tendrás un panel claro y accionable con métricas como el número de usuarios, mensajes y usuarios activos vs. inactivos.

Configuración de tu panel

Accede a Application Insights: Navega a tu resource de Application Insights en el portal de Azure.

Abre la herramienta de Logs (Analytics): Aquí es donde escribirás tus consultas KQL.

Crea métricas y visualizaciones: Escribe consultas para los KPIs, luego guárdalas como partes de un workbook compartido o dashboard.

Enviar user_Id a App Insights

Configura la telemetría en tu aplicación:

Para aplicaciones que usan el SDK de Application Insights, enriquece los datos de telemetría configurando el contexto de user_Id.

Ejemplo para .NET:

var telemetryClient = new TelemetryClient();
telemetryClient.Context.User.Id = "user123";
telemetryClient.TrackTrace("Sample trace with user ID");

Ejemplo para JavaScript:

appInsights.setAuthenticatedUserContext("user123"); 
appInsights.trackTrace({ message: "Sample trace with user ID" });

Verifica los datos:

Revisa tus trazas en Application Insights para confirmar que user_Id se está registrando.

Modifica tus consultas KQL:

Una vez que user_Id esté disponible en las trazas, puedes usarlo en tus consultas para analizar datos específicos de los usuarios.

Principales KPIs a incluir en tu panel

Usuarios totales

Esta métrica te da el conteo de usuarios únicos que interactúan con tu aplicación.

Query:

traces
| where timestamp >= startofday(now() - 30d)
| summarize TotalUsers = dcount(user_Id)

Chart: Muestra como un solo número o en un gráfico de columnas mostrando tendencias a lo largo del tiempo.

Mensajes totales

El número total de mensajes enviados en tu aplicación.

Query:

traces
| where timestamp >= startofday(now() - 30d)
| summarize TotalMessages = count()

Chart: Número total o un gráfico de tiempo para mostrar tendencias.

Top usuarios por número de mensajes

Identifica a los usuarios más activos según el número de mensajes que enviaron.

Query:

traces
| where timestamp >= startofday(now() - 30d)
| summarize MessageCount = count() by user_Id
| top 10 by MessageCount desc

Chart: Gráfico de barras mostrando los 10 principales usuarios y sus mensajes acumulados.

Mensajes por día

Rastrea el volumen de mensajes enviados diariamente para identificar tendencias de uso.

Query:

traces
| where timestamp >= startofday(now() - 30d)
| summarize DailyMessages = count() by bin(timestamp, 1d)

Chart: Gráfico de líneas o columnas para mostrar la actividad diaria.

Usuarios activos vs. inactivos

Analiza el engagement de los usuarios categorizándolos como activos (que enviaron al menos un mensaje) o inactivos.

Query:

let ActiveUsers = traces
    | where timestamp >= startofday(now() - 30d)
    | summarize ActiveUserCount = dcount(user_Id);
let TotalUsers = traces
    | summarize TotalUserCount = dcount(user_Id);
union (ActiveUsers | extend Category = 'Active')
     (TotalUsers | extend Category = 'Inactive', Count = TotalUserCount - ActiveUserCount)

Chart: Gráfico de torta mostrando la proporción de usuarios activos vs. inactivos.

Construir el panel

Agregar consultas al workbook: Guarda cada consulta como una ficha separada en un workbook de Application Insights.

Personalizar visualizaciones: Ajusta los tipos de gráficos y los diseños para hacer que el panel sea intuitivo.

Configurar alertas: Configura alertas basadas en umbrales para cualquier KPI, como una caída repentina de usuarios activos.

Ejemplo de salida del output

A continuación, se muestran ejemplos de gráficos generados con las consultas:

Mensajes diarios (Bar chart)

Daily messages per unidque users

Top usuarios por número de mensajes Count (Pie chart)

Top users

Tendencia de mensajes a lo largo del tiempo (Time series)

Message trend every hour

Tendencia de usuarios a lo largo del tiempo (Area chart)

User trend

Lecciones aprendidas

Usar LLM para generar consultas: Automatiza la creación de consultas usando una LLM. La LLM es bastante buena creando estas consultas para ti.

Limpieza de datos: Asegúrate de que tus registros contengan datos limpios y consistentes para evitar malas interpretaciones.

Eficiencia: Usa funciones de resumen como summarize y dcount para optimizar las consultas.

Compromiso de usuarios: Monitorear usuarios activos vs. inactivos es crucial para estrategias de retención.

Visualización: Elige los tipos de gráficos cuidadosamente para maximizar la claridad e impacto.

Automatización: Automatiza la actualización de tu panel para que siempre refleje los datos más recientes.

Conclusión

Construir un panel con Azure Application Insights y KQL otorga a los equipos información accionable. Al enfocarse en KPIs relevantes como la actividad de los usuarios y las tendencias de uso, puedes comprender mejor el rendimiento de tu aplicación y el comportamiento de los usuarios. Incorporar las lecciones aprendidas asegura que tu panel sea efectivo y sostenible.

Usa la LLM para generar las consultas KQL y empieza a crear tu propio panel hoy y desbloquea el potencial de los datos de tu aplicación.

Posts relacionados

Revolucionando las noticias con IA: Cómo creé un generador automatizado de noticias en formato podcast

Revolucionando las noticias con IA: Cómo creé un generador automatizado de noticias en formato podcast

Siempre he admirado el enfoque de Ángel Martín para dar las noticias: directo y al grano, sin rodeos, solo lo esencial. Inspirado por esa filosofía, creé un generador de pódcast de noticias impulsado por IA centrado en ofrecer noticias concisas y relevantes para mi ciudad, A Coruña. Mi objetivo era desarrollar un sistema que mantuviera a las personas informadas sin necesidad de recorrer artículos extensos o múltiples fuentes.

Leer más
Revamp App móvil usando Flutter en dos semanas

Revamp App móvil usando Flutter en dos semanas

Esta es la historia de cómo, en exactamente 2 semanas, realicé una renovación completa de la app CUAC FM teniendo en cuenta que el tiempo de trabajo estaba limitado a las restricciones de un proyecto desarrollado en mi tiempo libre.

Leer más
Analizador de plantas con IA! 🌱

Analizador de plantas con IA! 🌱

He desarrollado un analizador de plantas impulsado por IA que combina herramientas avanzadas del OpenAI Vision API y Tavily, con capacidades de búsqueda para explorar información en gardenia.net.

Leer más