amanat / rps-counter
Rps Counter Middleware, Model and Migrations
Requires
- php: ^7.3|^8.0
- illuminate/database: ^8.0|^9.0|^10.0|^11.0
- illuminate/redis: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- predis/predis: ^1.1|^2.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0|^10.0
README
Пакет для Laravel, предназначенный для подсчёта запросов в секунду (RPS) и логирования деталей запросов в базу данных. Пакет использует Redis для включения/выключения функциональности подсчёта и сохраняет данные о запросах (URL, IP-адрес, метод, время ответа и код состояния) в таблицу базы данных.
Возможности:
Middleware для отслеживания деталей запросов и времени ответа.
Сохранение данных запросов в таблицу rps_counts.
Использование Redis для включения/выключения подсчёта запросов.
Совместимость с Laravel 8.x, 9.x, 10.x и 11.x.
Включает миграции и конфигурацию для простой настройки.
Требования:
- PHP 7.3 или 8.0+
- Laravel 8.x, 9.x, 10.x или 11.x
- Настроенный сервер Redis в вашем приложении Laravel
Установка:
Установите пакет через Composer:
composer require amanat/rps-counter
Опубликуйте конфигурацию и миграции:
php artisan vendor:publish --tag=rps-counter-config
php artisan vendor:publish --tag=rps-counter-migrations
Выполните миграции:
php artisan migrate
Зарегистрируйте middleware:
Добавьте middleware в ваш файл app/Http/Kernel.php в нужную группу middleware (например, web или api):
protected $middlewareGroups = [ 'web' => [ \Amanat\RpsCounter\Http\Middleware\RpsCounterMiddleware::class, ], ];
Настройка:
Пакет предоставляет файл конфигурации config/rps-counter.php, где проставляется ключ для переключения redis:
return [ 'redis_key' => env('RPS_COUNTER_REDIS_KEY', 'settings:rps_count'), ];
Использование:
После настройки middleware будет:
Данные которые будут логироватся в таблицу rps_counts.
- URL
- IP-адрес
- HTTP-метод
- время ответа (в миллисекундах)
- код состояния каждого запроса
А так же включатся или выключатся в зависимости от значения ключа в redis.
Схема базы данных:
Таблица rps_counts, создаваемая миграцией, содержит следующие столбцы:
- id: Первичный ключ
- url: URL запроса
- ip: IP-адрес клиента
- type: HTTP-метод (например, GET, POST)
- speed: Время ответа в миллисекундах
- status_code: Код состояния HTTP-ответа
- created_at, updated_at: Временные метки
Лицензия MIT