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.
From the Blog
Monitoring PHP-FPM in Production: A Complete Stack
How Cbox FPM Exporter and Cbox Init work together to give you full observability over PHP-FPM pools, OPcache, and Larave
Building a FastCGI Client from Scratch in Go
The FastCGI protocol is from 1996 but still powers most PHP applications. Here is what I learned implementing a client l