pg_statviz 1.0 ya disponible con análisis impulsado por IA
Nos complace anunciar la versión 1.0 de pg_statviz, la extensión minimalista con su conjunto de utilidades para el análisis de series temporales y la visualización de estadísticas internas de PostgreSQL.
Se trata de una versión principal que incorpora una nueva funcionalidad opcional: análisis asistido por IA. Con el nuevo parámetro --ai, los datos de cada gráfico y su imagen PNG se envían a un modelo de lenguaje con capacidades de visión, acompañado de contexto propio de un DBA senior de PostgreSQL. El modelo devuelve un diagnóstico en forma de [HEALTHY] / [WARNING] / [CRITICAL], una interpretación breve y, en caso de [WARNING] o [CRITICAL], una recomendación concreta de corrección. Los reportes se generan en formato HTML, creadas junto con los PNG de los gráficos, e incluyen un index.html principal que sintetiza los resultados de cada módulo en un resumen único.
Las nuevas características:
- Tres proveedores de IA, un único parámetro:
--ai claudepara Claude de Anthropic (el valor por defecto),--ai geminipara Gemini 2.5 Flash del nivel gratuito de Google AI Studio, y--ai localpara una instancia de Ollama que ejecute un modelo con capacidades de visión comogemma4:e4b(el valor local recomendado por defecto). Los tres son completamente opcionales:pg_statvizsigue instalándose y ejecutándose sin ninguna dependencia de IA, y el nuevo extra[ai](pip install pg_statviz[ai]) instala únicamente lo que se solicite. - Los reportes HTML de cada módulo incorporan las imágenes PNG de los gráficos y presentan el análisis en markdown generado por el LLM, incluyendo indicadores de estado y párrafos con formato visual. Un nuevo reporte principal
index.htmlreúne las conclusiones de cada gráfico y pide al modelo sintetizarlas, detectando patrones relacionados entre distintos gráficos (por ejemplo, un incremento de WAL acompañado de sesiones prolongadas) y destacando la acción prioritaria más relevante. - El motor de reglas determinísticas analiza los datos numéricos reales y realiza distintas comprobaciones, antes de invocar al LLM. Los resultados obtenidos se agregan al prompt como contexto adicional, y un nivel mínimo de severidad asegura que la evaluación final no pueda ser inferior al hallazgo más crítico identificado por las reglas, evitando así que un LLM demasiado optimista pase por alto un problema real.
- Prompts sensibles a la configuración: los parámetros de
pg_settingspertinentes para cada gráfico (shared_buffersybgwriter_*para buffers,checkpoint_*ymax_wal_sizepara checkpoints,max_connectionspara conexiones, entre otros) se extraen de la instantánea de configuración capturada y se incluyen en el prompt correspondiente a cada módulo, garantizando que las recomendaciones emitidas por el modelo se fundamenten en las características reales del servidor y no en criterios genéricos. - El bloque de calibración definido en el prompt del sistema refuta explícitamente ciertos mitos ampliamente difundidos sobre PostgreSQL (entre ellos, la regla empírica de asignar “el 25% de la RAM a shared_buffers”, el valor predeterminado
random_page_cost=4y el cálculo simplificado dework_mem × max_connections), con el fin de impedir que el modelo sugiera ajustes innecesarios o injustificados. - Protección contra inyecciones de prompts: toda la información proveniente del usuario se encapsula dentro de etiquetas
<user_data>...</user_data>y el prompt del sistema indica al modelo que nunca interprete ese contenido como instrucciones. De esta manera, el análisis mantiene su robustez ante valores inesperados en configuraciones, nombres de roles, nombres de slots, textos de consulta u otros elementos similares.
Esta versión también incorpora mejoras de mantenimiento y optimización:
- El orquestador de
analyzeahora puede continuar correctamente cuando un módulo no encuentra datos de snapshot, evitando la interrupción completa del proceso en ese punto. - Se han corregido las pruebas relacionadas con el cálculo de tasas de E/S y se ha añadido cobertura para la nueva funcionalidad de IA.
pg_statviz parte de la idea de que todo debe ser ligero y minimalista. A diferencia de las soluciones comerciales de monitoreo, no necesita agentes invasivos ni conexiones abiertas a la base de datos, ya que todo funciona dentro de la propia base de datos. La extensión está escrita en SQL y PL/pgSQL puro y no requiere cargar módulos adicionales; la herramienta de visualización es independiente y puede ejecutarse desde cualquier entorno, y los datos permanecen libres y fáciles de exportar. El nuevo análisis con IA es completamente opcional: si no se incluye la opción --ai, pg_statviz funciona exactamente igual que antes, sin dependencias extra ni llamadas externas.
pg_statviz se limita a recopilar estadísticas internas de PostgreSQL y metadatos, sin incluir datos de la aplicación. No obstante, debe considerarse que, al utilizar una API de terceros en lugar de un modelo de lenguaje local, dichas estadísticas se transfieren a servidores externos, lo que puede implicar riesgos en materia de seguridad y privacidad. Asimismo, es probable que los términos de servicio del proveedor del modelo permitan el uso de las entradas con fines de entrenamiento de sus modelos. Si se necesita un funcionamiento completamente local, debe emplearse la opción --ai local.
- Es posible descargar e instalar
pg_statvizdesde los repositorios oficiales de PostgreSQL o mediante PGXN. - Asimismo, la utilidad puede instalarse a través de PyPi; para las funcionalidades de inteligencia artificial, se debe utilizar el comando
pip install pg_statviz[ai]. - También se encuentra disponible la opción de instalación manual.

