For applications running under PHP-FPM (PHP FastCGI Process Manager, the standard way PHP runs behind Nginx or Apache today), iPM can monitor the FPM pool itself in addition to basic web-server checks.
Enabling the FPM status endpoint
- Enable the status page in your PHP-FPM pool configuration (typically pm.status_path).
- Expose that status path through your web server configuration, restricted to localhost or the iPM server's IP address.
- Reload PHP-FPM and the web server to apply the changes.
- Point the PHP-FPM service check in iPM at that status endpoint.
What you can monitor
- Process — is the PHP-FPM master process running
- Active vs. idle workers — how many worker processes are currently handling requests versus sitting idle, relative to the pool's configured maximum
- Queue depth — requests waiting for a free worker; a queue that's consistently non-zero means the pool is undersized for current traffic
- Slow requests — PHP-FPM can log requests that exceed a configured time threshold, which is often the first sign of a slow database query or an external API call inside the application
- HTTP response check — a request to a real application page, confirming the application itself responds correctly and quickly, not just that the FPM pool is technically alive
Sizing the worker pool
If active workers are frequently at the pool maximum and the request queue is growing, PHP-FPM will start making users wait for a free worker, even though every individual request may complete quickly once it starts. This usually means the pool's max_children setting needs to be increased (server resources permitting) — a threshold alert on worker utilization gives you time to act before requests start timing out.