Skip to content
← All packages

FPM Exporter

Lightweight Prometheus exporter for PHP-FPM and Laravel applications. Metrics for FPM pools, opcache, Laravel queues, and multi-site support.

FPM Exporter is a lightweight Prometheus exporter that collects metrics from PHP-FPM pools, OPcache, and Laravel applications. It communicates with PHP-FPM directly via the FastCGI protocol, which means it works with any deployment: Docker, Kubernetes, VMs, or bare metal.

Complete PHP Observability

Pool Metrics

Active/idle processes, listen queue depth, max children reached, slow requests, accepted connections. Everything you need to tune pm.max_children.

Per-Pool OPcache

Hit rate, memory usage, wasted memory percentage, and restart counts for each FPM pool individually. Most tools only show system-wide OPcache stats.

Automatic Pool Discovery

Discovers all PHP-FPM pools automatically via php-fpm -tt. No manual configuration when pools are added or removed.

Laravel Integration

Queue sizes per connection, application info, cache driver state, and configuration details. Designed for the Laravel Queue Autoscale feedback loop.

Multi-Site Support

Monitor multiple Laravel applications from a single exporter instance. Each site gets its own metric labels.

Zero Dependencies

Single static binary. Download, configure, run. Available as a Docker image, systemd service, or standalone binary.

How it works

FPM Exporter sends FastCGI requests directly to each PHP-FPM pool using the fcgx library. For pool status, it reads the built-in status page. For OPcache, it injects a small PHP script via FastCGI that calls opcache_get_status() and returns JSON. This per-pool approach is unique because OPcache is shared across workers in a pool but isolated between pools.

Pre-built dashboards

FPM Exporter ships with ready-to-import Grafana dashboards and Prometheus alerting rules. Install and start monitoring in minutes.

Grafana dashboard showing PHP-FPM pool metrics, OPcache hit rates, and Laravel queue depths.