]> jfr.im git - munin-plugins.git/blame - php_fpm
make work with journald + add datapoints
[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'
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
86fi
87
88jsonblob="$(curl $CURL_OPTS $URL)"
89if ! 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
108fi
109
110echo 'multigraph php_fpm_workers'
111echo "idle.value $(echo "$jsonblob" | jq '."idle processes"')"
112echo "active.value $(echo "$jsonblob" | jq '."active processes"')"
113echo "total.value $(echo "$jsonblob" | jq '."total processes"')"
114echo "max.value $(echo "$jsonblob" | jq '."max active processes"')"
115
116echo 'multigraph php_fpm_connections'
117echo "rate.value $(echo "$jsonblob" | jq '."accepted conn"')"
118
119echo 'multigraph php_fpm_slow'
120echo "requests.value $(echo "$jsonblob" | jq '."slow requests"')"
121
122echo 'multigraph php_fpm_queue'
123echo "current.value $(echo "$jsonblob" | jq '."listen queue"')"
124echo "max.value $(echo "$jsonblob" | jq '."max listen queue"')"
125echo "len.value $(echo "$jsonblob" | jq '."listen queue len"')"