Sobre el proyecto

OpenEverest Plugin Bench es un plugin en desarrollo como parte del MVP de benchmarking de PostgreSQL de OpenEverest. Permite a los usuarios ejecutar benchmarks de pgbench desde la vista del clúster de base de datos de OpenEverest, ejecutándose cada benchmark en un Job temporal de Kubernetes. El proyecto está marcado explícitamente como un MVP en progreso y aún no está destinado a uso en producción. Cómo funciona: el backend del plugin coordina una ejecución de benchmark resolviendo los detalles de conexión de la instancia de PostgreSQL seleccionada a través de la API de OpenEverest, creando un Secret temporal que contiene las credenciales de la base de datos, creando un Job de Kubernetes usando la imagen del runner de pgbench, esperando al Job y recopilando los logs del runner, y luego eliminando el Job y el Secret temporal. El frontend aparece actualmente como una pestaña de detalle del clúster de PostgreSQL; otras tecnologías de bases de datos podrían añadirse más adelante mediante un diseño basado en drivers. El desarrollo local requiere Docker, kubectl, Helm, k3d, Tilt, Go y Node.js con npm. Ejecutar el plugin en un clúster también requiere una instalación de OpenEverest y un proveedor de PostgreSQL compatible. Se puede iniciar un clúster de desarrollo y un entorno de Tilt con make dev-up, o tilt up -f dev/Tiltfile si el clúster ya existe. Tilt construye el frontend, la imagen del coordinador y la imagen del runner de pgbench; la imagen del runner se usa solo cuando el coordinador inicia un Job de benchmark. El runner recibe los detalles de conexión de PostgreSQL a través de PGHOST, PGDATABASE, PGUSER y PGPASSWORD o PGPASSFILE. Las opciones de benchmark incluyen BENCH_INITIALIZE (por defecto false), BENCH_DURATION (por defecto 60 segundos), BENCH_CLIENTS (por defecto 1), BENCH_THREADS (por defecto 1) y BENCH_SCALE (por defecto 1). Establecer BENCH_INITIALIZE=true elimina y recrea las tablas de pgbench, por lo que solo debe usarse con una base de datos desechable. Los comandos útiles incluyen npm ci y npm run build para el frontend, go test ./... y go vet ./... en el backend, helm lint charts/plugin-bench/, y docker build para la imagen del runner de pgbench. El repositorio está organizado en src/ para el frontend de React, backend/ para el backend de Go (con internal/everest para el cliente de la API de OpenEverest e internal/coordinator para la orquestación de Jobs y Secrets de Kubernetes), runners/pgbench/ para la imagen del runner, charts/plugin-bench/ para el chart de Helm y el recurso Plugin, dev/ para la configuración de Tilt y k3d, y spec.md para los requisitos del MVP. Limitaciones actuales: el MVP está dirigido a instancias de PostgreSQL gestionadas por OpenEverest, la salida del benchmark se recopila del runner y aún no se persiste en una base de datos externa, y el historial de ejecuciones, un análisis de resultados más completo y el soporte para tecnologías de bases de datos adicionales están planificados para iteraciones posteriores. El proyecto está licenciado bajo la Apache License 2.0.