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"
}
]
}
}
}
Описание
Пакет для отслеживания сбоев в ларавел-проектах