Difference between revisions of "Plugin:cURL-JSON/phpfpm"
m (moved Plugin:cURL-JSON:phpfpm to Plugin:cURL-JSON/phpfpm) |
|||
(12 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | You can use cURL plugin to collect stats from php-fpm instances. The example of config is below. | + | {{Example config|cURL-JSON}} |
+ | |||
+ | You can use {{Plugin|cURL-JSON}} plugin to collect stats from php-fpm instances. The example of config is below. | ||
== Config == | == Config == | ||
− | |||
− | |||
LoadPlugin curl_json | LoadPlugin curl_json | ||
<Plugin curl_json> | <Plugin curl_json> | ||
<URL "http://127.0.0.1/_fpmstatus?json"> | <URL "http://127.0.0.1/_fpmstatus?json"> | ||
− | + | Instance 'main' | |
− | + | <Key "accepted conn"> | |
− | + | Type "phpfpm_requests" | |
− | + | Instance "" | |
− | + | </Key> | |
− | + | <Key "slow requests"> | |
− | + | Type "phpfpm_slow_requests" | |
− | + | Instance "" | |
− | + | </Key> | |
− | + | <Key "listen queue"> | |
− | + | Type "phpfpm_listen_queue" | |
− | + | Instance "" | |
− | + | </Key> | |
+ | <Key "active processes"> | ||
+ | Type "phpfpm_processes" | ||
+ | Instance "active" | ||
+ | </Key> | ||
+ | <Key "total processes"> | ||
+ | Type "phpfpm_processes" | ||
+ | Instance "total" | ||
+ | </Key> | ||
</URL> | </URL> | ||
− | </Plugin> | + | </Plugin> |
+ | |||
+ | 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: | ||
+ | |||
+ | #curl http://127.0.0.1/_fpmstatus?json | ||
+ | {"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} | ||
+ | |||
+ | |||
+ | == Types == | ||
+ | |||
+ | You'll need to create a custom {{Manpage|types.db|5}} and add these [[type]]s: | ||
+ | # 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 == | ||
+ | [[Image:phpfpm_processes.png]] | ||
+ | |||
+ | [[Image:phpfpm_req.png]] | ||
+ | |||
+ | [[Image:phpfpm_slow_req.png]] | ||
− | + | [[Image:phpfpm_listenq.png]] | |
− |
Latest revision as of 01:24, 12 March 2020
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.
Config
LoadPlugin curl_json <Plugin curl_json> <URL "http://127.0.0.1/_fpmstatus?json"> Instance 'main' <Key "accepted conn"> Type "phpfpm_requests" Instance "" </Key> <Key "slow requests"> Type "phpfpm_slow_requests" Instance "" </Key> <Key "listen queue"> Type "phpfpm_listen_queue" Instance "" </Key> <Key "active processes"> Type "phpfpm_processes" Instance "active" </Key> <Key "total processes"> Type "phpfpm_processes" Instance "total" </Key> </URL> </Plugin>
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:
#curl http://127.0.0.1/_fpmstatus?json {"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}
Types
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.