Об этом проекте
OpenEverest Plugin Bench — это плагин, находящийся в разработке в рамках MVP бенчмаркинга PostgreSQL в OpenEverest. Он позволяет пользователям запускать бенчмарки pgbench из представления кластера базы данных OpenEverest, при этом каждый бенчмарк выполняется во временном Kubernetes Job. Проект явно помечен как MVP в процессе разработки и пока не предназначен для использования в production.
Как это работает: бэкенд плагина координирует запуск бенчмарка, получая параметры подключения для выбранного экземпляра PostgreSQL через API OpenEverest, создавая временный Secret с учётными данными базы данных, создавая Kubernetes Job с использованием образа runner pgbench, ожидая завершения Job и собирая логи runner, после чего удаляет Job и временный Secret. Фронтенд в настоящее время отображается как вкладка в деталях кластера PostgreSQL; другие технологии баз данных могут быть добавлены позже благодаря дизайну на основе драйверов.
Для локальной разработки требуются Docker, kubectl, Helm, k3d, Tilt, Go и Node.js с npm. Для запуска плагина в кластере также требуются установка OpenEverest и поддерживаемый провайдер PostgreSQL. Кластер разработки и окружение Tilt можно запустить с помощью make dev-up или tilt up -f dev/Tiltfile, если кластер уже существует. Tilt собирает фронтенд, образ координатора и образ runner pgbench; образ runner используется только тогда, когда координатор запускает Job бенчмарка.
Runner получает параметры подключения к PostgreSQL через PGHOST, PGDATABASE, PGUSER и PGPASSWORD или PGPASSFILE. Опции бенчмарка включают BENCH_INITIALIZE (по умолчанию false), BENCH_DURATION (по умолчанию 60 секунд), BENCH_CLIENTS (по умолчанию 1), BENCH_THREADS (по умолчанию 1) и BENCH_SCALE (по умолчанию 1). Установка BENCH_INITIALIZE=true удаляет и заново создаёт таблицы pgbench, поэтому её следует использовать только с одноразовой базой данных.
Полезные команды включают npm ci и npm run build для фронтенда, go test ./... и go vet ./... в бэкенде, helm lint charts/plugin-bench/ и docker build для образа runner pgbench. Репозиторий организован следующим образом: src/ для фронтенда на React, backend/ для бэкенда на Go (с internal/everest для клиента API OpenEverest и internal/coordinator для оркестрации Kubernetes Job и Secret), runners/pgbench/ для образа runner, charts/plugin-bench/ для Helm-чарта и ресурса Plugin, dev/ для конфигурации Tilt и k3d, и spec.md для требований MVP.
Текущие ограничения: MVP ориентирован на экземпляры PostgreSQL, управляемые OpenEverest, вывод бенчмарка собирается от runner и пока не сохраняется во внешней базе данных, а история запусков, более богатый разбор результатов и поддержка дополнительных технологий баз данных запланированы на более поздние итерации. Проект лицензирован под Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.