Prometheus Metrics
Prometheus Metrics
The /health/metrics endpoint returns OpenMetrics-compatible output for Prometheus scraping.
Configuration
'metrics' => [
'prometheus' => [
'enabled' => env('HEALTH_PROMETHEUS_ENABLED', true),
'namespace' => env('HEALTH_PROMETHEUS_NAMESPACE', 'app'),
],
],
The namespace prefixes all metric names. Default: app.
Health Check Metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
{ns}_health_check_status |
gauge | check |
1.0 = ok, 0.5 = warning, 0.0 = critical/unknown |
{ns}_health_check_duration_seconds |
gauge | check |
Check execution time |
System Metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
{ns}_system_cpu_load_1m |
gauge | — | 1-minute load average |
{ns}_system_cpu_load_5m |
gauge | — | 5-minute load average |
{ns}_system_cpu_load_15m |
gauge | — | 15-minute load average |
{ns}_system_memory_used_bytes |
gauge | — | Memory used |
{ns}_system_memory_total_bytes |
gauge | — | Memory total |
{ns}_system_memory_usage_ratio |
gauge | — | Memory usage 0–1 |
{ns}_system_disk_used_bytes |
gauge | mountpoint |
Disk used per mount |
{ns}_system_disk_total_bytes |
gauge | mountpoint |
Disk total per mount |
{ns}_system_disk_usage_ratio |
gauge | mountpoint |
Disk usage 0–1 |
{ns}_system_network_rx_bytes_total |
counter | interface |
Bytes received |
{ns}_system_network_tx_bytes_total |
counter | interface |
Bytes transmitted |
{ns}_system_uptime_seconds |
gauge | — | System uptime |
Container Metrics
When running inside a container, additional metrics are exposed:
| Metric | Type | Description |
|---|---|---|
{ns}_container_memory_limit_bytes |
gauge | Container memory limit |
{ns}_container_memory_usage_bytes |
gauge | Container memory usage |
{ns}_container_cpu_quota |
gauge | Container CPU quota (cores) |
{ns}_container_cpu_throttled_total |
counter | CPU throttle count |
{ns}_container_oom_kills_total |
counter | OOM kill count |
Prometheus Scrape Config
scrape_configs:
- job_name: 'laravel'
metrics_path: '/health/metrics'
bearer_token: 'your-secret-token'
static_configs:
- targets: ['your-app:80']
Disabling System Metrics
Toggle individual system metric groups in config/health.php:
'metrics' => [
'system' => [
'cpu' => true,
'memory' => true,
'load' => true,
'storage' => false,
'network' => false,
],
],