@cryptotaxi247 / netdata-1 / commits / 63aed5863

adaptation of supporting apache 2.2 and 2.4

Costa Tsaousis (ktsaou) committed Jan 23, 2016 at 05:39 UTC 63aed58633cb183c4769898c4b1c625ad5e0fde6
1 file changed +76 -70
charts.d/apache.chart.sh
+76 -70
@@ -7,10 +7,6 @@ apache_url="http://127.0.0.1:80/server-status?auto"
7 # between the calls of the _update() function
8 apache_update_every=
9
10 -# let netdata calculate averages (0)
11 -# or use apache calculated averages (1)
12 -apache_averages=0
13 -
10 # convert apache floating point values
11 # to integer using this multiplier
12 # this only affects precision - the values
@@ -20,71 +16,95 @@ apache_decimal_detail=1000000
16 declare -a apache_response=()
17 apache_accesses=0
18 apache_kbytes=0
23 -apache_cpuload=0
24 -apache_uptime=0
19 apache_reqpersec=0
20 apache_bytespersec=0
21 apache_bytesperreq=0
22 apache_busyworkers=0
23 apache_idleworkers=0
30 -apache_scoreboard=
24 +
25 +apache_keys_detected=0
26 +apache_key_accesses=
27 +apache_key_kbytes=
28 +apache_key_reqpersec=
29 +apache_key_bytespersec=
30 +apache_key_bytesperreq=
31 +apache_key_busyworkers=
32 +apache_key_idleworkers=
33 +apache_key_connstotal=
34 +apache_key_connsasyncwriting=
35 +apache_key_connsasynckeepalive=
36 +apache_key_connsasyncclosing=
37 +apache_detect() {
38 + local i=0
39 + for x in "${@}"
40 + do
41 + case "${x}" in
42 + 'Accesses:') apache_key_accesses=$[i + 1] ;;
43 + 'kBytes:') apache_key_kbytes=$[i + 1] ;;
44 + 'ReqPerSec:') apache_key_reqpersec=$[i + 1] ;;
45 + 'BytesPerSec:') apache_key_bytespersec=$[i + 1] ;;
46 + 'BytesPerReq:') apache_key_bytesperreq=$[i + 1] ;;
47 + 'BusyWorkers:') apache_key_busyworkers=$[i + 1] ;;
48 + 'IdleWorkers:') apache_key_idleworkers=$[i + 1] ;;
49 + 'ConnsTotal:') apache_key_connstotal=$[i + 1] ;;
50 + 'ConnsAsyncWriting:') apache_key_connsasyncwriting=$[i + 1] ;;
51 + 'ConnsAsyncKeepAlive:') apache_key_connsasynckeepalive=$[i + 1] ;;
52 + 'ConnsAsyncClosing:') apache_key_connsasyncclosing=$[i + 1] ;;
53 + esac
54 +
55 + i=$[i + 1]
56 + done
57 +
58 + # we will not check of the Conns*
59 + # keys, since these are apache 2.4 specific
60 + if [ -z "${apache_key_accesses}" \
61 + -o -z "${apache_key_kbytes}" \
62 + -o -z "${apache_key_reqpersec}" \
63 + -o -z "${apache_key_bytespersec}" \
64 + -o -z "${apache_key_bytesperreq}" \
65 + -o -z "${apache_key_busyworkers}" \
66 + -o -z "${apache_key_idleworkers}" \
67 + ]
68 + then
69 + echo >&2 "apache: Invalid response or missing keys from apache server: ${*}"
70 + return 1
71 + fi
72 +
73 + return 0
74 +}
75
76 apache_get() {
77 apache_response=($(curl -s "${apache_url}"))
78 [ $? -ne 0 -o "${#apache_response[@]}" -eq 0 ] && return 1
79
36 - if [ "${apache_response[0]}" != "Total" \
37 - -o "${apache_response[1]}" != "Accesses:" \
38 - -o "${apache_response[3]}" != "Total" \
39 - -o "${apache_response[4]}" != "kBytes:" \
40 - -o "${apache_response[6]}" != "CPULoad:" \
41 - -o "${apache_response[8]}" != "Uptime:" \
42 - -o "${apache_response[10]}" != "ReqPerSec:" \
43 - -o "${apache_response[12]}" != "BytesPerSec:" \
44 - -o "${apache_response[14]}" != "BytesPerReq:" \
45 - -o "${apache_response[16]}" != "BusyWorkers:" \
46 - -o "${apache_response[18]}" != "IdleWorkers:" \
47 - -o "${apache_response[20]}" != "Scoreboard:" \
48 - ]
80 + if [ ${apache_keys_detected} -eq 0 ]
81 then
50 - echo >&2 "apache: Invalid response from apache server: ${apache_response[*]}"
51 - return 1
82 + apache_detect "${apache_response[@]}" || return 1
83 + apache_keys_detected=1
84 fi
85
54 - apache_accesses="${apache_response[2]}"
55 - apache_kbytes="${apache_response[5]}"
86 + apache_accesses="${apache_response[${apache_key_accesses}]}"
87 + apache_kbytes="${apache_response[${apache_key_kbytes}]}"
88
57 - # float2int "${apache_response[7]}" ${apache_decimal_detail}
58 - # apache_cpuload=${FLOAT2INT_RESULT}
59 -
60 - # apache_uptime="${apache_response[9]}"
61 -
62 - if [ ${apache_averages} -eq 1 ]
63 - then
64 - float2int "${apache_response[11]}" ${apache_decimal_detail}
65 - apache_reqpersec=${FLOAT2INT_RESULT}
89 + float2int "${apache_response[${apache_key_reqpersec}]}" ${apache_decimal_detail}
90 + apache_reqpersec=${FLOAT2INT_RESULT}
91
67 - float2int "${apache_response[13]}" ${apache_decimal_detail}
68 - apache_bytespersec=${FLOAT2INT_RESULT}
69 - fi
92 + float2int "${apache_response[${apache_key_bytespersec}]}" ${apache_decimal_detail}
93 + apache_bytespersec=${FLOAT2INT_RESULT}
94
71 - float2int "${apache_response[15]}" ${apache_decimal_detail}
95 + float2int "${apache_response[${apache_key_bytesperreq}]}" ${apache_decimal_detail}
96 apache_bytesperreq=${FLOAT2INT_RESULT}
97
74 - apache_busyworkers="${apache_response[17]}"
75 - apache_idleworkers="${apache_response[19]}"
76 - apache_scoreboard="${apache_response[21]}"
98 + apache_busyworkers="${apache_response[${apache_key_busyworkers}]}"
99 + apache_idleworkers="${apache_response[${apache_key_idleworkers}]}"
100
101 if [ -z "${apache_accesses}" \
102 -o -z "${apache_kbytes}" \
80 - -o -z "${apache_cpuload}" \
81 - -o -z "${apache_uptime}" \
103 -o -z "${apache_reqpersec}" \
104 -o -z "${apache_bytespersec}" \
105 -o -z "${apache_bytesperreq}" \
106 -o -z "${apache_busyworkers}" \
107 -o -z "${apache_idleworkers}" \
87 - -o -z "${apache_scoreboard}" \
108 ]
109 then
110 echo >&2 "apache: empty values got from apache server: ${apache_response[*]}"
@@ -114,31 +134,20 @@ apache_check() {
134 # _create is called once, to create the charts
135 apache_create() {
136 cat <<EOF
117 -CHART apache.bytesperreq '' "apache Average Response Size (lifetime)" "bytes/request" apache apache area 16005 $apache_update_every
137 +CHART apache.bytesperreq '' "apache Lifetime Avg. Response Size" "bytes/request" apache apache area 16008 $apache_update_every
138 DIMENSION size '' absolute 1 ${apache_decimal_detail}
119 -CHART apache.workers '' "apache Workers" "workers" apache apache stacked 16006 $apache_update_every
139 +CHART apache.workers '' "apache Workers" "workers" apache apache stacked 16005 $apache_update_every
140 DIMENSION idle '' absolute 1 1
141 DIMENSION busy '' absolute 1 1
122 -EOF
123 -
124 - if [ ${apache_averages} -eq 1 ]
125 - then
126 - # apache calculated averages
127 - cat <<EOF2
128 -CHART apache.requests '' "apache Requests" "requests/s" apache apache line 16001 $apache_update_every
142 +CHART apache.reqpersec '' "apache Lifetime Avg. Requests/s" "requests/s" apache apache line 16006 $apache_update_every
143 DIMENSION requests '' absolute 1 ${apache_decimal_detail}
130 -CHART apache.net '' "apache Bandwidth" "kilobits/s" apache apache area 16002 $apache_update_every
144 +CHART apache.bytespersec '' "apache Lifetime Avg. Bandwidth/s" "kilobits/s" apache apache area 16007 $apache_update_every
145 DIMENSION sent '' absolute 8 $[apache_decimal_detail * 1000]
132 -EOF2
133 - else
134 - # netdata calculated averages
135 - cat <<EOF3
146 CHART apache.requests '' "apache Requests" "requests/s" apache apache line 16001 $apache_update_every
147 DIMENSION requests '' incremental 1 1
148 CHART apache.net '' "apache Bandwidth" "kilobits/s" apache apache area 16002 $apache_update_every
149 DIMENSION sent '' incremental 8 1
140 -EOF3
141 - fi
150 +EOF
151
152 return 0
153 }
@@ -155,22 +164,19 @@ apache_update() {
164
165 apache_get || return 1
166
158 - if [ ${apache_averages} -eq 1 ]
159 - then
160 - reqs=${apache_reqpersec}
161 - net=${apache_bytespersec}
162 - else
163 - reqs=${apache_accesses}
164 - net=${apache_kbytes}
165 - fi
166 -
167 # write the result of the work.
168 cat <<VALUESEOF
169 BEGIN apache.requests $1
170 -SET requests = $[reqs]
170 +SET requests = $[apache_accesses]
171 END
172 BEGIN apache.net $1
173 -SET sent = $[net]
173 +SET sent = $[apache_kbytes]
174 +END
175 +BEGIN apache.reqpersec $1
176 +SET requests = $[apache_reqpersec]
177 +END
178 +BEGIN apache.bytespersec $1
179 +SET sent = $[apache_bytespersec]
180 END
181 BEGIN apache.bytesperreq $1
182 SET size = $[apache_bytesperreq]