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

Vigilance - комплексний інструмент моніторингу черг, команд та планувальника Laravel

Vigilance - це панель моніторингу, яка відстежує поведінку фонових процесів у production-середовищі. Пакет записує jobs, artisan-команди та заплановані завдання на всіх етапах виконання - від постановки в чергу до завершення або помилки, зберігаючи параметри запуску, коди виходу та траси винятків. Ключова відмінність від існуючих інструментів полягає в тому, що Vigilance працює з будь-яким драйвером черг: database, Redis, SQS, Beanstalkd та sync - всі звітують в єдине місце. Пакет вимагає PHP 8.2+, Laravel 12 або 13, Livewire 3.5+ або 4, та поширюється під ліцензією MIT.

Один запис на кожен запуск для всіх драйверів

Horizon працює лише з чергами Redis, а Telescope призначений для локального дебагу, а не production-моніторингу. Vigilance натомість створює один рядок для кожного запуску та оновлює його протягом життєвого циклу виконання. У результаті виходить єдина часова шкала, яка охоплює jobs у черзі, команди, запущені через CLI або scheduler, та сам планувальник. Кожен запис містить параметри виконання, фінальний стан та редаговану трасу винятків у разі помилки. Секретні дані автоматично видаляються перед збереженням.

Оскільки зберігання кожного успішного запуску стає затратним, Vigilance використовує семплювання під час відправки та зберігає всі помилки незалежно від частоти вибірки:

VIGILANCE_SAMPLE_RATE=0.1
VIGILANCE_RETENTION_DAYS=7
VIGILANCE_DB_CONNECTION=monitoring

Збереження 10% успішних запусків при повному збереженні всіх помилок дозволяє керувати обсягом даних на активних чергах. Налаштування VIGILANCE_DB_CONNECTION на окрему базу даних ізолює записи моніторингу від основного з'єднання додатка. Очищення старих записів виконується запланованою командою відповідно до налаштування retention.

Ручний запуск через типізовані форми

Після увімкнення функцій керування Vigilance може запускати jobs безпосередньо з панелі. Достатньо позначити job контрактом Dispatchable, і панель зчитає сигнатуру конструктора через рефлексію, щоб побудувати форму:

use Vigilance\Contracts\Dispatchable;
class ProcessPodcast implements ShouldQueue, Dispatchable
{
    public static string $vigilanceLabel = 'Process a podcast';
    public function __construct(public Podcast $podcast, public bool $notify = true) {}
}

Згенерована форма обробляє скалярні типи, enum'и, дати та прив'язку Eloquent-моделей. Конструктор, що очікує модель Podcast, створює поле, яке автоматично резолвить запис. Той самий механізм дозволяє запускати дозволені artisan-команди з інтерфейсу. Обидві можливості вимкнені за замовчуванням і контролюються через конфігурацію:

VIGILANCE_CONTROL_ENABLED=true

Користувацькі метрики та Core Web Vitals

Поряд з історією запусків Vigilance збирає два типи даних додатка. Бізнес-метрики використовують API лічильників та показників, які можна викликати з власного коду:

use Vigilance\Vigilance;
Vigilance::increment('signups');
Vigilance::gauge('cart_value', $cart->total());

Для frontend-даних можна увімкнути Real User Monitoring (RUM) та додати Blade-директиву до layout'у для збору Core Web Vitals (LCP, INP, CLS, FCP, TTFB) від реальних відвідувачів:

VIGILANCE_RUM=true
@vigilanceRum

Ці дані живлять панелі продуктивності, які відображають p50, p95 та p99 латентності та показники помилок поряд з часовими шкалами черг та команд.

Встановлення та захист панелі

Встановіть пакет, запустіть інсталятор та виконайте міграції:

composer require anousss007/vigilance
php artisan vigilance:install
php artisan migrate

Панель доступна лише локально, поки ви явно не авторизуєте доступ. Визначте, хто може її бачити, через callback у методі boot() service provider'а або через Gate:

use Vigilance\Vigilance;
Vigilance::auth(fn ($request) => in_array($request->user()?->email, [
    'you@example.com',
]));

За замовчуванням панель доступна за адресою /vigilance.

Додаткові можливості

Панель виходить за межі простої історії черг. Вона групує винятки у fingerprinted-inbox проблем, що охоплює веб-запити, jobs у черзі, команди та браузер. Відстежує service-level objectives з error budgets та burn-rate-алертами, моніторить здоров'я релізів, порівнюючи показники помилок до та після deploy.

Інші опціональні компоненти включають:

  • Трейсинг запитів та jobs з waterfall-діаграмами для кожного запиту та виявленням N+1 проблем
  • Uptime-перевірки, що записують доступність та латентність -Log explorer з пошуком, корельований з трейсами
  • Оповіщення в Slack, Discord, Teams або через webhook
  • Worker supervisor, що виконує роль Horizon для не-Redis драйверів
  • Read-only доступ для AI-агентів через MCP-сервер

Документацію та вихідний код можна знайти на GitHub.

51

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

Коментарі

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

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

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

Новини 04 листопада 2026

Laravel 13.40: довгі завдання черги, insertBefore() для middleware і strict для запиту

Laravel 13.40.0 додає Queue::whenJobRunsLongerThan() і Schedule::whenTaskRunsLongerThan() для завдань черги та планувальника, що виконуються задовго, а також insertBefore() і insertAfter() для вбудованого стеку middleware. Крім того - прапорець strict для $request->integer() і string() та DB::hasCommitId() для перевірки реплік.

2
Новини 04 листопада 2026

Вразливість у Concurrency: вивід задачі міг призвести до виконання коду в Laravel

Laravel 13.40.0 і 12.71.0 закривають вразливість у драйвері process фасаду Concurrency: задача, яка друкує текст від користувача, могла підробити свій результат, а батьківський процес робив його unserialize(). Пояснюємо, кого це стосується і що зробити до оновлення.

3

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

Optimizee Group
54 дні тому

Product Lead (Strategy + Full Stack)

Product Lead з відповідальністю за розробку та лідерство. Гібридна роль: 60% управління продуктом (дорожна карта, пріоритизація, аналітика) та 40% full stack розробки на PHP Laravel. Потрібен досвід розробника (5+ років), знання бекенду, баз даних, здатність приймати продуктові рішення та керувати командою. Основний стек: PHP 8.2+, Laravel 12, MySQL, Redis, Alpine.js, Livewire.

Middle PHP developer

Middle PHP розробник для високонавантаженої веб-платформи Social Casino/Online Casino: розвиток продукту, перехід монолітного проєкту на мікросервіси (Symfony), оптимізація баз даних, написання unit та functional тестів. Стек: PHP 7.4, Symfony 4, Yii, PostgreSQL 14, Redis, RabbitMQ, NGINX. Вимоги: 3-4+ роки продуктового досвіду з PHP, Yii, Symfony, PostgreSQL, розуміння REST API, Git, ООП та SOLID. Досвід з брокерами повідомлень і DDD буде плюсом.

Tech Lead — Fintech

Tech Lead для фінтех-платформи бізнес-витрат і платежів: активна розробка, архітектурні рішення, стабільність продакшену та менторство команди. Ключовий стек: PHP, Laravel/Lumen, MySQL, Redis, Docker, знання JavaScript (Vue.js, React на базовому рівні). Вимоги: розуміння життєвого циклу карткових транзакцій і криптовалют, досвід побудови надійних фінансових систем (баланси, звірка, аудит, безпечні API), DevOps-навички на Linux.

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

Telescope

laravel/telescope

Елегантний помічник для налагодження фреймворку Laravel, який допомагає розробникам в розробці та тестуванні додатків.

5,235 v5.27.0 13 6

Filament

filament/filament

Найпопулярніша адмін-панель для Laravel: ресурси, таблиці, форми та дашборди описуються PHP-класами поверх Livewire, Alpine і Tailwind. Замінює рутину CRUD-інтерфейсів декларативною конфігурацією.

31,852 v5.7.6 10