Sobre o projeto
O OpenEverest Plugin Bench é um plugin em desenvolvimento como parte do MVP de benchmarking PostgreSQL do OpenEverest. Ele permite que os usuários executem benchmarks pgbench a partir da visualização do cluster de banco de dados do OpenEverest, com cada benchmark sendo executado em um Job temporário do Kubernetes. O projeto está explicitamente marcado como um MVP em andamento e ainda não destinado ao uso em produção.
Como funciona: o backend do plugin coordena uma execução de benchmark resolvendo os detalhes de conexão da instância PostgreSQL selecionada por meio da API do OpenEverest, criando um Secret temporário contendo as credenciais do banco de dados, criando um Job do Kubernetes usando a imagem do executor pgbench, aguardando o Job e coletando os logs do executor, e então excluindo o Job e o Secret temporário. O frontend atualmente aparece como uma aba de detalhes do cluster PostgreSQL; outras tecnologias de banco de dados poderão ser adicionadas posteriormente por meio de um design baseado em drivers.
O desenvolvimento local requer Docker, kubectl, Helm, k3d, Tilt, Go e Node.js com npm. Executar o plugin em um cluster também requer uma instalação do OpenEverest e um provedor PostgreSQL compatível. Um cluster de desenvolvimento e um ambiente Tilt podem ser iniciados com make dev-up, ou tilt up -f dev/Tiltfile se o cluster já existir. O Tilt compila o frontend, a imagem do coordenador e a imagem do executor pgbench; a imagem do executor é usada apenas quando o coordenador inicia um Job de benchmark.
O executor recebe os detalhes de conexão do PostgreSQL por meio de PGHOST, PGDATABASE, PGUSER e PGPASSWORD ou PGPASSFILE. As opções de benchmark incluem BENCH_INITIALIZE (padrão false), BENCH_DURATION (padrão 60 segundos), BENCH_CLIENTS (padrão 1), BENCH_THREADS (padrão 1) e BENCH_SCALE (padrão 1). Definir BENCH_INITIALIZE=true remove e recria as tabelas do pgbench, portanto deve ser usado apenas com um banco de dados descartável.
Comandos úteis incluem npm ci e npm run build para o frontend, go test ./... e go vet ./... no backend, helm lint charts/plugin-bench/ e docker build para a imagem do executor pgbench. O repositório está organizado em src/ para o frontend React, backend/ para o backend Go (com internal/everest para o cliente da API do OpenEverest e internal/coordinator para a orquestração de Jobs e Secrets do Kubernetes), runners/pgbench/ para a imagem do executor, charts/plugin-bench/ para o Helm chart e o recurso Plugin, dev/ para a configuração do Tilt e k3d, e spec.md para os requisitos do MVP.
Limitações atuais: o MVP tem como alvo instâncias PostgreSQL gerenciadas pelo OpenEverest, a saída do benchmark é coletada do executor e ainda não é persistida em um banco de dados externo, e o histórico de execuções, uma análise mais rica dos resultados e o suporte a tecnologias de banco de dados adicionais estão planejados para iterações futuras. O projeto está licenciado sob a Apache License 2.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.