Usando IA para detectar problemas de performance en aplicaciones GeneXus


En aplicaciones grandes desarrolladas con GeneXus, detectar problemas de performance puede ser una tarea compleja. Los logs generados con log4net contienen muchísima información valiosa, pero leerlos manualmente no escala.

En este post te comparto una metodología práctica para analizar estos logs utilizando NotebookLM, aprovechando su capacidad de entender documentos y responder preguntas sobre ellos.


Idea general

La propuesta es simple pero poderosa:

  1. Convertir los logs de ejecución en documentos (PDF)

  2. Subirlos como fuentes a NotebookLM

  3. Hacer preguntas inteligentes sobre el contenido

  4. Obtener insights de performance automáticamente

Esto transforma un análisis manual tedioso en un proceso asistido por IA.


Paso 1: Generar los logs correctamente

Asegurate de que tu aplicación GeneXus esté generando logs con suficiente detalle (al menos DEBUG). Un formato típico de log4net que funciona muy bien es:

%d{yyyy-MM-dd'T'HH:mm:ss.fffzzz} [%t] %-5p %c - %m%n

Esto te da:

  • Timestamp con precisión de milisegundos

  • Nivel de log (INFO, DEBUG, WARN, etc.)

  • Clase que ejecuta

  • Mensaje (incluyendo SQL, nombre de programa, parametros, etc.)


Paso 2: Convertir logs a PDF

NotebookLM trabaja mejor con documentos estructurados. Por eso:

  • Convertí tus archivos .log a .pdf

  • Yo uso un driver de impresion a PDF. 

  • Si el archivo es muy grande, dividilo por partes (ej: por día o por thread)


Paso 3: Subir los logs a NotebookLM

  1. Crear un nuevo notebook en NotebookLM

  2. Subir los PDFs como “Sources”

  3. Esperar a que indexe el contenido

Una vez hecho esto, NotebookLM ya puede “leer” y entender tus logs.


Paso 4: Hacer consultas inteligentes

Acá está la clave del valor.

Ejemplos de preguntas útiles:

🔹 Detección de cuellos de botella

  • “¿Cuáles son las operaciones más lentas?”

  • “¿Qué consultas SQL tienen mayor tiempo de ejecución?”

🔹 Análisis de patrones

  • “¿Hay procesos que se repiten muchas veces?”

  • “¿Qué sentencias sql aparecen más frecuentemente en los logs?”

🔹 Problemas potenciales

  • “¿Detectas esperas largas entre eventos?”

  • “¿Hay indicios de problemas de concurrencia o bloqueos?”

🔹 Recomendaciones

  • “Dame 3 recomendaciones para mejorar la performance basadas en estos logs”

NotebookLM no solo responde, sino que además cita partes específicas del log como evidencia.


Paso 5: Iterar como si fuera un analista experto

Una gran ventaja es que podés iterar:

  • Refinar preguntas

  • Focalizar en un proceso específico

  • Pedir explicaciones más técnicas

Esto simula tener un analista senior revisando logs contigo.


 Casos de uso concretos en GeneXus

Esta metodología es especialmente útil para:

  •  Identificar procedimientos batch lentos

  • Detectar SQL mal optimizado

  • Analizar conexiones lentas

  • Entender comportamiento en producción

  • Validar mejoras luego de optimizaciones


Bonus: combinándolo con herramientas propias

Si ya tenés herramientas como analizadores de logs (por ejemplo scripts o utilidades internas), podés combinarlas:

  • Preprocesar los logs (ej: detectar delays grandes)

  • Luego usar NotebookLM para el análisis cualitativo

Lo mejor de ambos mundos: automatización + interpretación inteligente


Consideraciones importantes

  • Los logs pueden contener datos sensibles → anonimizar si es necesario

  • NotebookLM tiene límites de tamaño → dividir archivos grandes

  • No reemplaza el conocimiento técnico → lo potencia


Conclusión

El análisis de performance ya no tiene que ser un proceso manual, lento y propenso a errores.

Usando NotebookLM, podés transformar tus logs de GeneXus en una fuente de conocimiento accionable, acelerando el diagnóstico y mejorando la calidad de tus sistemas. No es el uso mas tradicional de NotebookLM pero es efectivo y ahorra mucho en en analisis de logs. 


Si estás trabajando con aplicaciones grandes o sistemas críticos, esta metodología puede marcar una diferencia enorme en productividad.

* Esta metodologia es mejor cuando analiza proceso batch. Para esto, es recomendable utilizar procedures command line para probar el procedure a optimizar y generar el log solo de ese objeto. 

La Yapa

Comparto alguno de los prompts que uso para analizar los logs.

Prompt para iniciar el NotebookLM


Actúa como un experto en performance de aplicaciones GeneXus.

Analiza estos logs generados con log4net.
Los logs contienen timestamps, niveles de log y mensajes de ejecución.

Tu objetivo es:
1) Detectar cuellos de botella
2) Identificar operaciones lentas
3) Encontrar patrones repetitivos ineficientes
4) Detectar esperas entre eventos
5) Proponer mejoras concretas

Cuando respondas:
- Usa evidencia concreta del log
- Cita ejemplos
- Sé específico (no general)
- Prioriza impacto alto en performance

Pregunta Generica


Analiza estos logs de GeneXus como experto en performance.

1) Detecta las operaciones más lentas
2) Encuentra gaps de tiempo > 500 ms
3) Identifica patrones repetitivos
4) Analiza SQL problemático

Devuelve:
- Top 5 problemas
- Evidencia concreta
- Recomendaciones accionables

Sentencias SQL 


Extrae todas las sentencias SQL detectadas en los logs.

Para cada una:
- Identifica frecuencia
- Evalúa posibles problemas (filtros, índices, joins, funciones)
- Detecta patrones de mala performance

Devuelve:
- Top queries más problemáticas
- Recomendaciones específicas

Comentarios

Entradas más populares de este blog

Impresión directa a impresora en el WEB con aplicaciones GeneXus.

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?