satheez / laravel-rate-limit-dashboard
A Laravel package that provides real-time visibility, dynamic configuration, and actionable insights for rate-limiting.
Package info
github.com/satheez/laravel-rate-limit-dashboard
pkg:composer/satheez/laravel-rate-limit-dashboard
Requires
- php: ^8.1
- illuminate/contracts: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- larastan/larastan: ^2.9|^3.0
- laravel/pint: ^1.15
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
- rector/rector: ^1.0|^2.0
README
Laravel Rate-Limit Dashboard
Real-time visibility, dynamic configuration, and actionable insights for your rate-limiting infrastructure.
Laravel's built-in RateLimiter facade and throttle middleware allow you to define rate limits, but they provide no visual interface to monitor usage or adjust limits in production.
Laravel Rate-Limit Dashboard bridges this gap by offering a beautiful UI, dynamic configuration, and alerting, answering questions like:
Who is hitting the rate limits? Which endpoints are being abused? Can we adjust limits without redeploying?
The Problem
When users encounter HTTP 429 (Too Many Requests) errors, developers traditionally have no built-in way to:
- See the offending IP or API token
- Identify exactly which endpoint is being hammered
- Adjust the rate limits gracefully without redeploying code
This leads to support tickets, unchecked abuse, and misconfigured limits.
Features
Real-Time Visibility
- Dashboard showing total requests, throttled requests, and utilisation
- Top offenders list (IP address, user ID, API token) with throttled counts
Dynamic Configuration
- Edit rate-limit parameters directly from the UI without code deployment
- Per-user and per-IP overrides (e.g., lower limits for bad actors)
Alerts & Health Checks
- Configurable notifications via Slack, email, or webhook when limits reach critical thresholds (e.g., 80% usage)
- Built-in health checks identifying unconfigured routes, zero decay, or missing storage
Pluggable Storage
- Supports MySQL, PostgreSQL, Redis, and MongoDB
- Configurable data retention and automatic purge policies
Installation
composer require satheez/laravel-rate-limit-dashboard
Publish configuration and migrations:
php artisan vendor:publish --provider="Sa\RateLimitDashboard\RateLimitDashboardServiceProvider" --tag="config" php artisan vendor:publish --provider="Sa\RateLimitDashboard\RateLimitDashboardServiceProvider" --tag="migrations" php artisan migrate
Quick Start
Enable the middleware by adding it to your HTTP kernel or group:
protected $middleware = [ // ... \Sa\RateLimitDashboard\Http\Middleware\RateLimitInstrumenter::class, ];
Navigate to the dashboard route (default: /admin/rate-limits) and you will start seeing metrics populating automatically as requests hit your rate-limited routes.
Documentation
| Document | Description |
|---|---|
| Installation | Requirements, setup, and migrations |
| Usage | Dashboard usage and programmatic access |
| Configuration | Full config/rate-limit-dashboard.php reference |
| Checks Reference | Built-in health checks and alert severities |
| Scoring & Thresholds | How offenders are ranked and scored |
| Output & UI | Dashboard interface details and JSON API responses |
| Architecture | System design, instrumentation layer, data processing |
| Comparison | How this compares to Laravel Pulse, Telescope, etc. |
| FAQ | Common questions regarding performance and setup |
Security
See SECURITY.md for the vulnerability reporting policy.
License
MIT — see LICENSE.md.
