README.md

laravel-pulse

Пакет для отслеживания сбоев в ларавел-проектах

https://gitflic.ru/project/adb/laravel-pulse

Установка

composer require adb/laravel-pulse

Публикация конфигурации

php artisan vendor:publish --tag=pulse

Настройка перечня storage (дисков) для проверки доступности в .env файле

Значения по умолчанию:

DISCS_FOR_PULSE=local,input1

Добавьте свои названия storage из config/filesystems.php

Настройка prefix, middleware для роутов.

Значения по умолчанию:

'prefix' => 'api/pulse',
'middleware' => ['api', 'pulse.auth.api'],
'as' => 'api.pulse.',

Настройка компонентов для тестов.

'config' => [
    PulseEnum::PROJECT => true, // laravel and php 
    PulseEnum::DB => true, // connect db
    PulseEnum::REDIS => true, // redis
    PulseEnum::NODE => false, // node and npm
    PulseEnum::HORIZON => true, // horizon
    PulseEnum::STORAGES => false, // диски
    PulseEnum::SECURITY => false, // проверка пакетов
],

Настройка перечня баз для проверки соединений.

Значения по умолчанию:

'connections_db'  => [
'mongodb'
],

'connections_redis'  => [
'default'
],

Добавьте свои значения.

Команда

php artisan pulse:info - запуск всех тестов согласно настройки выше.

Запуск теста для конкретного компонента:

php artisan pulse:info project

php artisan pulse:info db

php artisan pulse:info node

php artisan pulse:info redis

php artisan pulse:info horizon

php artisan pulse:info storages

php artisan pulse:info security

php artisan pulse:info > /tmp/pulse.json запись в файл для заббикса или прописать в Kernel.php нужный таймаут: $schedule->command(‘pulse:info’)->everyThirtyMinutes()->sendOutputTo(‘/tmp/pulse.json’);

Запись результатов в БД

Для активации записи в БД, поставьте true и примените миграцию (для sql бд) Так же это активирует api для выдачи самого последнего результата

'save_to_db' => false,

API

/api/pulse/pulse

авторизация по bearer token, прописать его как API_TOKEN в env

Структура json

{
    "project": {
        "php": "8.3.30",
        "laravel": "10"
    },
    "db": {
        "mongodb": {
            "driver": "mongodb",
            "host": "localhost",
            "name": "mongodb",
            "db": "database",
            "success": true
        }
    },
    "redis": {
        "default": {
            "redis_name": "default",
            "redis_version": "7.4.2",
            "os": "Linux 6.10.14-linuxkit aarch64",
            "port": "6379",
            "host": "redis",
            "success": true
        }
    },
    "horizon": {
        "success": false
    },
    "storages": {
        "local": true,
        "input": true,
        "archive": true,
    },
    "security": {
        "erusev\/parsedown": {
            "version": "1.7.1",
            "time": "2018-03-08T01:11:30+00:00",
            "advisories": [
                {
                    "title": "Class-Name Injection",
                    "link": "https:\/\/github.com\/erusev\/parsedown\/issues\/699",
                    "cve": "CVE-2019-10905"
                }
            ]
        }
    }
}

Описание

Пакет для отслеживания сбоев в ларавел-проектах

Конвейеры
0 успешных
0 с ошибкой