Страница статуса и мониторинг uptime для приложений Laravel
Мониторинг Laravel-роутов, очередей, шедулеров и Horizon. Хостед страница на своём домене через CNAME, или своя через API.
Три способа запустить страницу статуса для Laravel
Выберите нужный уровень контроля — zero-code, low-code или полный headless.
Хостед
Добавьте Laravel-эндпоинт, направьте CNAME на status.yourdomain.com — готово. 5 минут.
Headless
Через публичный API собрать свою UI прямо в Laravel-приложении. Полный контроль дизайна и брендинга.
Смотреть APIВстраиваемые бейджи
SVG-бейджи uptime и статуса в README или лендинг. Обновляются каждые 5 минут.
Вставьте этот health endpoint в своё Laravel-приложение
Скопируйте, вставьте, направьте PulseAPI на URL. 200 — здоров, 503 — деградация.
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
Route::get('/health', function () {
$checks = [];
try {
DB::select('select 1');
$checks['database'] = 'ok';
} catch (\Throwable $e) {
$checks['database'] = 'fail';
}
try {
Redis::ping();
$checks['cache'] = 'ok';
} catch (\Throwable $e) {
$checks['cache'] = 'fail';
}
$healthy = collect($checks)->every(fn ($v) => $v === 'ok');
return response()->json(
['status' => $healthy ? 'healthy' : 'degraded', ...$checks],
$healthy ? 200 : 503
);
})->withoutMiddleware([
\App\Http\Middleware\VerifyCsrfToken::class,
]);Пропустите CSRF и auth middleware. 503 при частичной ошибке. Исключите из throttle, если он строгий.
Что ломается в Laravel-приложениях и как это поймать
Отстающие очереди Horizon
Бэклог в очереди убивает async UX. Ассершн queue-depth ловит рано.
Остановившиеся джобы планировщика
Застрявший cron не отправит счета. Heartbeat эндпоинт + ассершн last-run.
Сбои cache / session driver
Проблемы Redis вызывают перемежающиеся 500. Cache-check в /health показывает.
Не нравится наша страница статуса? Соберите свою на Laravel.
Наш API отдаёт те же данные, что потребляет наша хостед-UI. Полная OpenAPI-спека на api.pulseapi.tech/docs.
use Illuminate\Support\Facades\Http;
class StatusController extends Controller
{
public function index()
{
$data = Http::timeout(5)
->get('https://api.pulseapi.tech/status/acme')
->json();
return view('status', ['data' => $data]);
}
}Мониторинг Laravel — FAQ
Работает с Laravel Forge, Vapor и self-hosted?
Со всеми — PulseAPI нужен только публичный URL.
Можно мониторить Horizon?
Да. Эндпоинт читает Horizon::status() и глубину очередей. JSON-path ассершны по конкретным очередям.
Обрабатывает режим обслуживания Laravel?
Да. 503 от `php artisan down` вызывает инцидент. Отметьте окна обслуживания, чтобы подавить алерты при деплое.
Можно рендерить страницу статуса внутри Laravel?
Да. Запрашивайте API из контроллера, передавайте в Blade view.
Запустите мониторинг Laravel-приложения за 5 минут
Бесплатный тариф, без карты. Добавьте эндпоинт, получайте алерты о падениях.