]> jfr.im git - munin-plugins.git/blob - php_fpm
postfix fixes
[munin-plugins.git] / php_fpm
1 #!/bin/sh
2 # -*- sh -*-
3
4 : << =cut
5
6 =head1 NAME
7
8 php_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
19 URL="${URL:-http://localhost/fpm?json}"
20 CURL_OPTS="${CURL_OPTS:---location} --silent"
21
22 if [ "$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
37 fi
38
39 if [ "$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'
64
65 echo 'multigraph php_fpm_slow'
66 echo 'graph_title PHP-FPM Slow requests'
67 echo 'graph_args --base 1000 -l 0'
68 echo 'graph_scale no'
69 echo 'graph_vlabel # since start'
70 echo 'graph_category php'
71 echo 'requests.label Slow requests'
72
73 echo 'multigraph php_fpm_queue'
74 echo 'graph_title PHP-FPM Listen queue'
75 echo 'graph_args --base 1000 -l 0'
76 echo 'graph_scale no'
77 echo 'graph_vlabel Queue size'
78 echo 'graph_category php'
79 echo 'current.label Current'
80 echo 'max.label Highest'
81 echo 'len.label Capacity'
82 echo 'len.draw AREA'
83 echo 'len.colour ffd660'
84
85 exit 0
86 fi
87
88 jsonblob="$(curl $CURL_OPTS $URL)"
89 if ! echo "$jsonblob" | jq -e >/dev/null; then
90 echo 'multigraph php_fpm_workers'
91 echo 'total.value U'
92 echo 'idle.value U'
93 echo 'active.value U'
94 echo 'max.value U'
95
96 echo 'multigraph php_fpm_connections'
97 echo 'rate.value U'
98
99 echo 'multigraph php_fpm_slow'
100 echo 'requests.value U'
101
102 echo 'multigraph php_fpm_queue'
103 echo 'current.value U'
104 echo 'max.value U'
105 echo 'len.value U'
106
107 exit 0
108 fi
109
110 echo 'multigraph php_fpm_workers'
111 echo "idle.value $(echo "$jsonblob" | jq '."idle processes"')"
112 echo "active.value $(echo "$jsonblob" | jq '."active processes"')"
113 echo "total.value $(echo "$jsonblob" | jq '."total processes"')"
114 echo "max.value $(echo "$jsonblob" | jq '."max active processes"')"
115
116 echo 'multigraph php_fpm_connections'
117 echo "rate.value $(echo "$jsonblob" | jq '."accepted conn"')"
118
119 echo 'multigraph php_fpm_slow'
120 echo "requests.value $(echo "$jsonblob" | jq '."slow requests"')"
121
122 echo 'multigraph php_fpm_queue'
123 echo "current.value $(echo "$jsonblob" | jq '."listen queue"')"
124 echo "max.value $(echo "$jsonblob" | jq '."max listen queue"')"
125 echo "len.value $(echo "$jsonblob" | jq '."listen queue len"')"