Download the PHP package saimaz/laravel-prometheus without Composer
On this page you can find all versions of the php package saimaz/laravel-prometheus. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download saimaz/laravel-prometheus
More information about saimaz/laravel-prometheus
Files in saimaz/laravel-prometheus
Package laravel-prometheus
Short Description Professional Prometheus metrics integration for Laravel applications
License MIT
Homepage https://github.com/saimaz/laravel-prometheus
Informations about the package laravel-prometheus
Laravel Prometheus
Zero-config Prometheus metrics for Laravel. Install the package, set one env var, and your app starts exporting HTTP metrics, Horizon queue stats, and custom application metrics — ready for Grafana.
Built on promphp/prometheus_client_php.
What you get out of the box
- HTTP metrics — request count and duration histogram, auto-registered as global middleware
- Horizon metrics — supervisor status, jobs/min, queue workload, wait times (auto-detected)
/metricsendpoint — Prometheus text format, protected by IP whitelist- Custom metrics — define your own via PHP backed enums
- Extensible collectors — gather point-in-time metrics on each scrape
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
- Redis (recommended) or APCu for metric storage
Installation
Add to your .env:
That's it. Visit /metrics to see your metrics.
Optional configuration
Publish the config file only if you need to customize defaults:
Configuration
All configuration is done via environment variables — no config file needed for most setups.
| Variable | Default | Description |
|---|---|---|
PROMETHEUS_ENABLED |
false |
Enable/disable metrics collection |
PROMETHEUS_NAMESPACE |
APP_NAME |
Metric name prefix (e.g. myapp_http_requests_total) |
PROMETHEUS_STORAGE |
redis |
Storage driver: redis, apc, in_memory |
PROMETHEUS_REDIS_CONNECTION |
default |
Laravel Redis connection name |
PROMETHEUS_PREFIX |
PROMETHEUS_ |
Redis key prefix |
PROMETHEUS_ALLOWED_IPS |
(empty) | Comma-separated IPs allowed to scrape /metrics |
PROMETHEUS_ENDPOINT |
metrics |
Path for the metrics endpoint |
Storage
Redis is recommended for production (metrics persist across PHP processes). The package automatically falls back to in-memory storage when:
PROMETHEUS_ENABLEDisfalse- Redis connection fails (with error logged)
- Running in
testingenvironment
Built-in metrics
HTTP metrics (automatic)
Registered as global middleware — no setup needed.
| Metric | Type | Labels |
|---|---|---|
{ns}_http_requests_total |
Counter | route, method, status |
{ns}_http_request_duration_seconds |
Histogram | route, method, status |
Routes are identified by name (e.g. api.users.index) or URI pattern (e.g. api/users/{user}) to prevent label cardinality explosion.
Ignoring routes — by default, metrics and horizon.* are ignored. Customize in config:
Horizon metrics (automatic)
Auto-detected when laravel/horizon is installed. No configuration needed.
| Metric | Type | Labels |
|---|---|---|
{ns}_horizon_status |
Gauge | — |
{ns}_horizon_master_supervisors |
Gauge | — |
{ns}_horizon_jobs_per_minute |
Gauge | — |
{ns}_horizon_recent_jobs |
Gauge | — |
{ns}_horizon_failed_jobs_per_hour |
Gauge | — |
{ns}_horizon_current_workload |
Gauge | queue |
{ns}_horizon_current_processes |
Gauge | queue |
{ns}_horizon_queue_wait_time_seconds |
Gauge | queue |
Custom metrics
1. Define a metric enum
2. Record metrics
Inject MetricsRegistryInterface or use the Prometheus facade:
Or with the facade:
Custom collectors
Collectors run on each /metrics scrape — useful for point-in-time metrics.
Register in config/prometheus.php:
Custom HTTP labels
Add tenant, brand, or other labels to HTTP metrics by implementing HttpLabelProvider:
Set in config:
Prometheus scrape config
Add your Laravel app as a target in prometheus.yml:
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-prometheus with dependencies
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/routing Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
promphp/prometheus_client_php Version ^2.6