]> jfr.im git - munin-plugins.git/blame - php_fpm
support for a 2nd unbound plugin
[munin-plugins.git] / php_fpm
CommitLineData
3decc5d1
JR
1#!/bin/sh
2# -*- sh -*-
3
4: << =cut
5
6=head1 NAME
7
8php_fpm - Plugin to show PHP-FPM status
9
10=head1 MAGIC MARKERS
11
12 #%# family=auto
13 #%# capabilities=autoconf
14
15=cut
16
17. "${MUNIN_LIBDIR:-/usr/share/munin}/plugins/plugin.sh"
18
19URL="${URL:-http://localhost/fpm?json}"
20CURL_OPTS="${CURL_OPTS:---location} --silent"
21
22if [ "$1" = "autoconf" ]; then
23 if ! command -v curl >/dev/null 2>&1; then
24 echo "no (no curl)"
25 exit 0
26 fi
27 if ! command -v jq >/dev/null 2>&1; then
28 echo "no (no jq)"
29 exit 0
30 fi
31 if ! curl --fail $CURL_OPTS $URL >/dev/null 2>&1; then
32 echo "no (curl $CURL_OPTS $URL failed)"
33 exit 0
34 fi
35 echo yes
36 exit 0
37fi
38
39if [ "$1" = "config" ]; then
40
41 echo 'multigraph php_fpm_workers'
42 echo 'graph_title PHP-FPM workers'
43 echo 'graph_args --base 1000 -l 0 '
44 echo 'graph_scale no'
45 echo 'graph_vlabel # workers'
46 echo 'graph_category php'
47 echo 'total.label Total workers'
48 echo 'total.draw AREA'
49 echo 'total.colour ffd660'
50 echo 'idle.label Idle workers'
51 echo 'active.label Active workers'
52 echo 'max.label Max reached'
53 echo 'max.info Max reached since start'
54 echo 'max.colour 000000'
55
56 echo 'multigraph php_fpm_connections'
57 echo 'graph_title PHP-FPM Connections'
58 echo 'graph_args --base 1000 -l 0'
59 echo 'graph_scale no'
60 echo 'graph_vlabel Connections/second'
61 echo 'graph_category php'
62 echo 'rate.label Connection rate'
63 echo 'rate.type DERIVE'
0d8dd5f2 64 echo 'rate.min 0'
3decc5d1
JR
65
66 echo 'multigraph php_fpm_slow'
67 echo 'graph_title PHP-FPM Slow requests'
68 echo 'graph_args --base 1000 -l 0'
69 echo 'graph_scale no'
70 echo 'graph_vlabel # since start'
71 echo 'graph_category php'
72 echo 'requests.label Slow requests'
73
74 echo 'multigraph php_fpm_queue'
75 echo 'graph_title PHP-FPM Listen queue'
76 echo 'graph_args --base 1000 -l 0'
77 echo 'graph_scale no'
78 echo 'graph_vlabel Queue size'
79 echo 'graph_category php'
80 echo 'current.label Current'
81 echo 'max.label Highest'
82 echo 'len.label Capacity'
83 echo 'len.draw AREA'
84 echo 'len.colour ffd660'
85
86 exit 0
87fi
88
89jsonblob="$(curl $CURL_OPTS $URL)"
90if ! echo "$jsonblob" | jq -e >/dev/null; then
91 echo 'multigraph php_fpm_workers'
92 echo 'total.value U'
93 echo 'idle.value U'
94 echo 'active.value U'
95 echo 'max.value U'
96
97 echo 'multigraph php_fpm_connections'
98 echo 'rate.value U'
99
100 echo 'multigraph php_fpm_slow'
101 echo 'requests.value U'
102
103 echo 'multigraph php_fpm_queue'
104 echo 'current.value U'
105 echo 'max.value U'
106 echo 'len.value U'
107
108 exit 0
109fi
110
111echo 'multigraph php_fpm_workers'
112echo "idle.value $(echo "$jsonblob" | jq '."idle processes"')"
113echo "active.value $(echo "$jsonblob" | jq '."active processes"')"
114echo "total.value $(echo "$jsonblob" | jq '."total processes"')"
115echo "max.value $(echo "$jsonblob" | jq '."max active processes"')"
116
117echo 'multigraph php_fpm_connections'
118echo "rate.value $(echo "$jsonblob" | jq '."accepted conn"')"
119
120echo 'multigraph php_fpm_slow'
121echo "requests.value $(echo "$jsonblob" | jq '."slow requests"')"
122
123echo 'multigraph php_fpm_queue'
124echo "current.value $(echo "$jsonblob" | jq '."listen queue"')"
125echo "max.value $(echo "$jsonblob" | jq '."max listen queue"')"
126echo "len.value $(echo "$jsonblob" | jq '."listen queue len"')"