pm2-php-fpm

Monitor PHP-FPM with Keymetrics

Usage no npm install needed!

<script type="module">
  import pm2PhpFpm from 'https://cdn.skypack.dev/pm2-php-fpm';
</script>

README

pm2-php-fpm

PHP-FPM module for Keymetrics

pm2-php-fpm screenshot

Description

This module monitors following PHP-FPM metrics:

  • uptime;
  • number of connections since start;
  • average request:
    • duration;
    • CPU usage;
    • memory consumption.
  • active and idle proccesses count;
  • connection queue size;
  • child processes limit hits;
  • slow processes count.

Requirements

This module reqires PHP-FPM and PM2 to be installed. Also it may require you to edit PHP-FPM configs to enable status page. Make sure your user has privileges to access PHP-FPM socket.

Installation

pm2 install pm2-php-fpm

Configuration

Default settings:

  • fcgi_path is /var/run/php5-fpm.sock;
  • endpoint is /status;
  • interval is 1000 milliseconds.

To modify the config values you can use Keymetrics dashboard or the following commands:

pm2 set pm2-php-fpm:fcgi_path /var/run/custom-php-socket.sock
pm2 set pm2-php-fpm:endpoint /health
pm2 set pm2-php-fpm:interval 5000

You may use TCP port instead of UNIX socket:

pm2 set pm2-php-fpm:fcgi_host 127.0.0.1
pm2 set pm2-php-fpm:fcgi_port 9000

Troubleshooting

Cannot connect to PHP-FPM error

Check module configuration. Make sure that path or host and port are the ones you have in PHP-FPM config. Also this error may appear when your PHP-FPM instance is overloaded or stopped unexpectedly.

PHP-FPM status endpoint not found error

You’ve entered wrong endpoint. Or changed its name in PHP-FPM configuration recently and didn’t update module settings.

Access to PHP-FPM denied error

User running PM2 daemon has no rights to access PHP-FPM socket. You need to add your user to group owning socket. Find out its name in PHP-FPM pool config or use stat -c %G /path/to/php5-fpm.sock

Add your user (e.g. myuser) to target group (e.g. www-data): sudo usermod -a -G www-data myuser

Reconnect to your server and restart PM2 daemon: pm2 update

Other

Look through Issues. You may find someone with the same problem. If your problem is unique, feel free to create a new issue.

Uninstallation

pm2 uninstall pm2-php-fpm

License

MIT