Laravel

Страница статуса и мониторинг 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 — деградация.

routes/web.php
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 показывает.

Headless-угол

Не нравится наша страница статуса? Соберите свою на Laravel.

Наш API отдаёт те же данные, что потребляет наша хостед-UI. Полная OpenAPI-спека на api.pulseapi.tech/docs.

Laravel-контроллер, получающий и рендерящий наш API статуса.
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 минут

Бесплатный тариф, без карты. Добавьте эндпоинт, получайте алерты о падениях.