Skip to content

Plugin cURL JSON phpfpm

Florian Forster edited this page Nov 26, 2023 · 1 revision
Clone this wiki locally

This page contains some example configurations for the cURL-JSON plugin. This page is meant as a cookbook, so if you have a configuration for an aspect not handled here or a daemon not present, please feel free to add anything that's useful for you.

You can use cURL-JSON plugin plugin to collect stats from php-fpm instances. The example of config is below.


 LoadPlugin curl_json
 <Plugin curl_json>
 <URL "">
  Instance 'main'
  <Key "accepted conn">
      Type "phpfpm_requests"
      Instance ""
  <Key "slow requests">
      Type "phpfpm_slow_requests"
      Instance ""
  <Key "listen queue">
      Type "phpfpm_listen_queue"
      Instance ""
  <Key "active processes">
      Type "phpfpm_processes"
      Instance "active"
  <Key "total processes">
      Type "phpfpm_processes"
      Instance "total"

Please note that the metod used to access php-fpm stats is not FastCGI but HTTP. So you need to configure your web-server to pass such requests to php-fpm instance. You can check your web-server configuration using "curl". You had to get something similar to:

 {"pool":"pool_name","process manager":"dynamic","start time":1562671972,"start since":347271,"accepted conn":1082924,"listen queue":0,"max listen queue":0,"listen queue len":0,"idle processes":4,"active
 processes":1,"total processes":5,"max active processes":25,"max children reached":8,"slow requests":0}


You'll need to create a custom types.db(5) and add these types:

 # types.db
 phpfpm_listen_queue  value:GAUGE:0:65535
 phpfpm_processes     value:GAUGE:0:65535
 phpfpm_requests      value:DERIVE:0:U
 phpfpm_slow_requests value:DERIVE:0:U

See TypesDB configuration option in collectd config file for locations of default and custom `types.db' files.

Example graphs