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

Watchtower: комплексний моніторинг задач, черг та помилок у Laravel

Watchtower - це Laravel-пакет, який об'єднує моніторинг запланованих задач (scheduled tasks), черг, job'ів та винятків на єдиній панелі керування, призначеній для роботи в production-середовищі. Пакет надає не лише видимість процесів, а й можливість активних дій: запуск задачі за вимогою, масове повторення failed jobs, позначення помилок як вирішених.

Ключові можливості

Пакет підтримує будь-який драйвер черг - database, Redis або SQS - без жорсткої залежності від Redis. Watchtower враховує конфігурації з однією базою даних, кількома базами або multi-tenant архітектурою. Запис даних відбувається безпечно для production завдяки відкладеному запису, sampling та автоматичному pruning.

Доступ до панелі контролюється через gate-механізм у стилі Horizon та Telescope. Опціонально можна налаштувати сповіщення через Slack, webhook або email.

Три вкладки для фонових процесів

Панель розділена на три основні розділи:

Schedule

Вкладка Schedule відображає всі заплановані задачі з їхніми cron-виразами, записаними людською мовою. Тут можна побачити історію виконання, тривалість кожного запуску та виявлення пропущених запусків. Кнопка "Run now" дозволяє негайно запустити будь-яку задачу.

Queues & Jobs

Розділ Queues & Jobs показує live-метрики черг поруч з таблицею failed jobs. Ви можете повторити виконання окремого job'а або масово повторити всі job'и за типом винятку чи часовим проміжком.

Errors

Вкладка Errors групує винятки за типом та кількістю виникнень. Для кожного винятку доступні повні stack traces, контекст запиту та job'а, а також контроли для позначення помилки як вирішеної або повторного відкриття.

Усе це не прив'язане до конкретного драйвера: черги можуть працювати на database, Redis або SQS, а Watchtower читає дані з окремого підключення, коли додаток використовує кілька баз даних або tenants.

Безпека для production за замовчуванням

Запис активності на кожному request та job міг би стати навантаженням для застосунку, тому Watchtower відкладає запис даних до callback'а terminating() у Laravel, виносячи його за межі основного шляху запиту.

Додатки з високим трафіком можуть записувати лише частину активності, використовуючи sampling rate, при цьому всі збої та запуски schedule продовжують фіксуватися повністю. Усі збережені поля обрізаються для обмеження розміру рядків. Щоденна команда watchtower:prune очищає застарілі записи згідно з налаштованими періодами зберігання: 30 днів для schedule runs та exceptions, 7 днів для queue records за замовчуванням.

Більшість параметрів налаштовується через змінні оточення:

WATCHTOWER_ENABLED=true
WATCHTOWER_DB_CONNECTION=monitoring
WATCHTOWER_SAMPLING_RATE=0.25
WATCHTOWER_AFTER_RESPONSE=true
WATCHTOWER_RETAIN_EXCEPTIONS=30

Встановлення WATCHTOWER_ENABLED=false діє як аварійний вимикач, що миттєво зупиняє запис. Списки ігнорування для jobs, commands та exceptions дозволяють прибрати зайві елементи з панелі.

Авторизація

За замовчуванням панель доступна лише в local-середовищі. Для відкриття доступу в інших середовищах потрібно визначити gate viewWatchtower:

use Illuminate\Support\Facades\Gate;

Gate::define('viewWatchtower', function ($user) {
    return $user !== null && $user->isAdmin();
});

Альтернативно можна використати fluent callback, щоб тримати логіку авторизації разом з пакетом:

use Watchtower\Watchtower;

Watchtower::auth(fn ($request) => $request->user()?->isAdmin());

Неавторизовані запити отримують відповідь 403.

Опціональні сповіщення

Watchtower може сповіщати про збій запланованої задачі, пропущений запуск або перевищення порогу failed jobs (за замовчуванням 25 за 60 хвилин). Сповіщення вимкнені до встановлення WATCHTOWER_ALERTS_ENABLED=true і можуть надсилатися через Slack, generic webhook або email.

Перевірки виконуються командою watchtower:monitor, яку потрібно додати до розкладу:

$schedule->command('watchtower:monitor')->everyFiveMinutes();

Вимоги та ліцензія

Watchtower потребує PHP 8.2+ та Laravel 11 або 12. Пакет розповсюджується під ліцензією MIT. Вихідний код, довідку з конфігурації та інструкції з встановлення можна знайти на GitHub.

60

Коментарі

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

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

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

Валідація ключів масиву
Новини 08 серпня 2026

Валідація ключів масиву в Laravel: нове правило array_keys

Laravel 13.24 додає правило валідації array_keys, яке дозволяє чітко визначити допустимі ключі масиву та відхиляти неочікувані. Це вирішує проблему тихих помилок у фільтрах API та запобігає запису зайвих даних у JSON-колонки.

3
Saga Lara Flow
Новини 08 серпня 2026

Saga Lara Flow: тривалі воркфлоу та компенсуючі транзакції на основі черг Laravel

Saga Lara Flow - пакет для Laravel, що дозволяє писати довготривалі бізнес-процеси як звичайні PHP-методи поверх черг Laravel. Підтримує автоматичні відкати транзакцій, сигнали, паралельні блоки та вкладені воркфлоу із записом кожного кроку до бази даних.

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

TrueLabel
4 дн. тому

Senior PHP developer — Core Team

Розробка та підтримка backend-сервісів і API на Laravel/PHP для core-команди. Робота з event-driven інтеграціями (Kafka, RabbitMQ), реляційними БД та Redis. Вимоги: архітектурне мислення, код-ревью, менторинг, аналіз технічних ризиків, мінімальний нагляд при розробці асинхронних інтеграцій.

Full-Stack Developer (PHP Laravel + Vue 3)

Full-Stack розробник для внутрішної B2B-платформи управління задачами. Розробка backend на Laravel 10/11 та frontend на Vue 3 + Inertia.js, проектування MySQL, тестування (PHPUnit/Vitest), робота з дизайн-системою Tailwind. Вимога: 3+ років досвіду з Laravel та Vue 3, знання Inertia.js/SPA, MySQL, REST API, Git-флоу, SOLID.

FullStack Developer (React+PHP Laravel) in AI Product Company

FullStack розробник для AI-продукту. Розробка React-інтерфейсів та PHP Laravel мікросервісів, інтеграція з LLM (ChatGPT), оптимізація промптів. Вимоги: 5+ років PHP, 3+ років Laravel та React/TypeScript, досвід мікросервісної архітектури, OOP/SOLID, REST API, WebSocket.

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

Telescope

laravel/telescope

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

5,207 v5.22.0 13 6

Bagisto

bagisto/bagisto

Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.

27,950 v2.4.9 12 15

Відео за темою