Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 15 вересня 2026

PostgreSQL Monitoring and Schema Linting для Laravel з пакетом Vacuum

Vacuum - це пакет для моніторингу PostgreSQL у Laravel-застосунках, створений Rati Rukhadze. Пакет зчитує статистику, яку PostgreSQL уже збирає у вбудованих view таких як pg_stat_user_tables, pg_stat_activity та pg_stat_statements, після чого складає список виявлених проблем разом із SQL-командами для їх виправлення.

Основні можливості

Vacuum пропонує широкий набір інструментів для моніторингу та аналізу бази даних:

  • 13 правил-радників (advisor rules): виявлення wraparound, bloat, dead tuples, невикористовуваних індексів, повільних запитів та інших проблем
  • Health score: оцінка здоров'я бази даних за 100-бальною шкалою на основі виявлених проблем
  • Підтримка Blade та Filament: готова панель за адресою /vacuum або плагін для Filament 4 чи 5
  • Команда vacuum:check: може провалити білд у CI/CD при виявленні критичних проблем
  • Команда vacuum:lint: виявляє проблеми зі схемою бази даних, такі як непроіндексовані зовнішні ключі
  • Історія: відстеження трендів та прогнозування на основі запланованих знімків (snapshots)
  • Уроки (Lessons): 13 пояснень щодо PostgreSQL, які використовують ваші власні таблиці як приклади
  • І багато іншого

Dashboard та правила аналізу

Кожна виявлена проблема має рівень серйозності (severity) та оцінку (grade), що в сукупності формує загальний health score із 100 балів.

Детальніше про правила можна дізнатися з readme пакета. Окрім того, пакет надає ендпоінт /learn, який пояснює, чому певні проблеми існують у вашій базі даних, використовуючи ваші власні таблиці як робочі приклади - наприклад, для пояснення N+1 запитів.

Робота з термінала

Ті самі правила можна запускати через командний рядок:

php artisan vacuum:check
php artisan vacuum:check --fail-on=warning   # critical, warning, info, or never
php artisan vacuum:check --format=json       # score, grade, deductions, findings

Використовуючи заплановану задачу (scheduled job) на staging-оточенні, ви можете налаштувати провал білду, коли freeze age таблиці перевищить критичний поріг. Кожне правило зчитує свої ліміти з конфігураційного файлу config/vacuum.php, зокрема dead_tuple_ratio (0.20) та slow_query_milliseconds (500).

Встановлення

Vacuum версії 1.2.0 вимагає PostgreSQL 14 та Laravel 11+. Розширення pg_stat_statements є опціональним - без нього dashboard просто повідомить про відсутність розширення.

composer require heyosseus/vacuum
php artisan vacuum:install

Налаштування доступу

За замовчуванням dashboard доступний лише в local-оточенні. Щоб відкрити доступ в інших середовищах, можна використати callback через метод Vacuum::auth():

use Heyosseus\Vacuum\Vacuum;

Vacuum::auth(fn (Request $request) => $request->user()?->isAdmin() === true);

Дізнатися більше про пакет, отримати повні інструкції зі встановлення та переглянути вихідний код можна на GitHub.

22

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Filament v5.10.0
Новини 12 жовтня 2026

Filament v5.10.0: сітка в rich editor, скелетони таблиць і десятки виправлень

Вийшов Filament v5.10.0: елементи керування сіткою в rich editor, допоміжний контент для віджетів-графіків, скелетони завантаження таблиць, submitOnCompletion() для OneTimeCodeInput та багато виправлень авторизації, доступності й стану.

15
Laravel AI SDK на практиці
Новини 09 жовтня 2026

Laravel AI SDK на практиці: агент, що стоїть за There There

Фрік Ван дер Гертен розповідає, як у Spatie побудували AI-шар хелпдеска There There на Laravel AI SDK: клас агента, інструменти з типізованою JSON-схемою та делегування роботи звичайним domain-діям.

11

Вакансії за темою

MAKEUP
12 днів тому

PHP Tech Lead

PHP Tech Lead для великого e-commerce проекту. Управління PHP-командою з 3-8 людей, участь у проектуванні архітектури, code review та розробці критичних частин системи. Вимоги: 6+ років досвіду у PHP/backend, 2+ років у ролі лідера, знання Laravel/Symfony, SQL, REST API, Docker, CI/CD, тестування.

Stape Нова
Вчора

PHP Team Lead

Керівник команди PHP-розробників, який наймає й розвиває бекенд-інженерів, планує завдання і ресурси, контролює передбачуваність поставок та усуває ризики і блокери. Також потрібно розробляти нові функції, оптимізувати продуктивність і масштабування high-load систем, проводити code review та брати участь в архітектурних рішеннях. Стек: PHP, Symfony, MySQL, PostgreSQL, Redis, RabbitMQ, REST API. Вимоги: 5+ років досвіду з PHP, 3+ роки з Symfony, 2+ роки керівництва командою, досвід роботи з high-

Senior PHP Backend Developer

Розробник створюватиме та підтримуватиме інтерфейси веб-застосунку на PHP, розширюватиме наявні модулі, писатиме модульний і масштабований код та бере участь в оцінці й пріоритизації завдань. Ключовий стек: PHP, Laravel, SQL (PostgreSQL, MySQL), NoSQL (MongoDB, Redis), Docker, CI/CD. Вимоги: понад 5 років досвіду PHP backend-розробником, написання тестів (PHPUnit), якісна документація, англійська B1.

Пакети за темою

Laravel Query Detector

beyondcode/laravel-query-detector

Інструмент для виявлення та попередження проблем N+1 запитів у Laravel додатках. Допомагає оптимізувати запити до бази даних шляхом виявлення неефективних паттернів навантаження даних.

2,056 2.3.0 13 15

Lada Cache

spiritix/lada-cache

Redis-базований автоматизований рівень кешування для бази даних Laravel, який забезпечує масштабованість та оптимізацію продуктивності.

591 v6.1.1 13 3