README.md

pg_expecto – Статистический анализ производительности и ожиданий СУБД PostgreSQL

pg_expecto – это комплексный инструмент для глубокого статистического анализа и тестирования производительности PostgreSQL. Релиз знаменует появление мощного и свободно распространяемого решения для администраторов баз данных и разработчиков.

Основная задача pg_expecto – предоставить администраторам и разработчикам инструментарий для выявления узких мест и оптимизации работы PostgreSQL. В отличие от некоторых современных решений, pg_expecto сознательно фокусируется на надёжных и проверенных статистических методах, что обеспечивает полный контроль и прозрачность процесса анализа.

Ключевые особенности

  • Всесторонний статистический и корреляционный анализ – глубокий анализ производительности PostgreSQL и событий ожидания (wait_event_type / wait_event), установление корреляции между внутренним состоянием СУБД и общей производительностью системы.
  • Мониторинг операционной системы – сбор и анализ метрик ОС с помощью утилит vmstat и iostat, что позволяет напрямую увязать нагрузку на диск, память и процессор с поведением базы данных.
  • Встроенное нагрузочное тестирование – проведение нагрузочных тестов для оценки поведения базы данных под давлением и определения пределов её производительности.
  • Построение отчетов для Excel – экспорт результатов анализа в форматы, совместимые с Microsoft Excel, для дальнейшей обработки, визуализации и представления данных.
  • Обширная база знаний – передача пользователям большого объёма материалов по результатам экспериментов с проектом pg_hazel, служащих ценным источником знаний и практических примеров.
  • Проактивный мониторинг – формирование репрезентативных профилей производительности систем наблюдения посредством разработки стандартизированных файлов метрических данных. Регистрация события снижения производительности СУБД служит триггером инициирования стандартных и приоритетных инцидентов реагирования.
  • Интеграция с нейросетью – автоматическая подготовка промптов для нейросети с целью анализа статистически обработанных метрик производительности СУБД и инфраструктуры.
  • Версия 7 – статистическая обработка метрик, промпты для подготовки отчетов нейросетью.

Системные требования

Для работы pg_expecto требуются установленные утилиты vmstat и iostat.

Важно

Для работы pg_expecto требуются установленные библиотеки расширений pg_stat_statements и pg_wait_sampling.

Значение параметра shared_preload_libraries должно быть:

shared_preload_libraries = 'pg_stat_statements, pg_wait_sampling'

Порядок библиотек важен.

Установка

  1. Распаковать zip-архив проекта (pg_expecto-main.zip). В результате будет подготовлена папка: pg_expecto-main.
  2. Скопировать содержимое на целевой сервер СУБД в папку: /tmp/pg_expecto.
  3. Используя учётную запись postgres, на целевом сервере СУБД создать сервисную папку:
    mkdir /postgres/pg_expecto
  4. Скопировать инсталлятор:
    cp /tmp/pg_expecto/pg_expecto_install.sh /postgres/pg_expecto/
  5. Перейти в папку для начала установки:
    cd /postgres/pg_expecto
  6. Подготовить скрипт инсталлятора:
    chmod 750 pg_expecto_install.sh
  7. Запустить инсталлятор:
    ./pg_expecto_install.sh

Мониторинг работоспособности pg_expecto

Для просмотра лога работы используйте команду:

tail -f /postgres/pg_expecto/sh/pg_expecto.log

Использование

Подробный пример использования pg_expecto v.7 с нейросетью DeepSeek описан в статье:
PG_EXPECTO v.7 + DeepSeek: полный цикл диагностики производительности PostgreSQL — от нагрузочного тестирования до разбора инцидентов

Контакты

Статус проекта

Текущая версия: 7.4.3

📜 Лицензия

Начиная с версии 8.0, проект pg_expecto распространяется под лицензией Apache License 2.0.
Предыдущие версии (до 12.04.2026) доступны под лицензией MIT.
Полный текст лицензии находится в файле LICENSE в корне репозитория.

Описание
Комплекс статистического анализа производительности СУБД PostgreSQL
Конвейеры
0 успешных
0 с ошибкой
Разработчики