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:
Convertir los logs de ejecución en documentos (PDF)
Subirlos como fuentes a NotebookLM
Hacer preguntas inteligentes sobre el contenido
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
.loga.pdfYo 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
Crear un nuevo notebook en NotebookLM
Subir los PDFs como “Sources”
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
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.