-#!/bin/bash
+# no need for shebang - this file is loaded from charts.d.plugin
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
+# netdata
+# real-time performance and health monitoring, done right!
+# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
+# GPL v3+
+#
+# Contributed by @safeie with PR #276
-# first, you need open php-fpm status in php-fpm.conf
+# first, you need open php-fpm status in php-fpm.conf
# second, you need add status location in nginx.conf
# you can see, https://easyengine.io/tutorials/php/fpm-status-page/
phpfpm_get() {
local opts="${1}" url="${2}"
- phpfpm_response=($(curl -Ss ${opts} "${url}"))
+ phpfpm_response=($(run curl -Ss ${opts} "${url}"))
[ $? -ne 0 -o "${#phpfpm_response[@]}" -eq 0 ] && return 1
if [[ "${phpfpm_response[0]}" != "pool:" \
|| "${phpfpm_response[32]}" != "total" \
]]
then
- echo >&2 "phpfpm: invalid response from phpfpm status server: ${phpfpm_response[*]}"
+ error "invalid response from phpfpm status server: ${phpfpm_response[*]}"
return 1
fi
phpfpm_total_processes="${phpfpm_response[34]}"
phpfpm_max_active_processes="${phpfpm_response[38]}"
phpfpm_max_children_reached="${phpfpm_response[42]}"
- if [[ "${phpfpm_response[43]}" == "slow" ]]
+ if [ "${phpfpm_response[43]}" == "slow" ]
then
phpfpm_slow_requests="${phpfpm_response[45]}"
else
|| -z "${phpfpm_max_children_reached}" \
]]
then
- echo >&2 "phpfpm: empty values got from phpfpm status server: ${phpfpm_response[*]}"
+ error "empty values got from phpfpm status server: ${phpfpm_response[*]}"
return 1
fi
do
phpfpm_get "${phpfpm_curl_opts[$m]}" "${phpfpm_urls[$m]}"
if [ $? -ne 0 ]; then
- echo >&2 "phpfpm: cannot find status on URL '${phpfpm_url[$m]}'. Please set phpfpm_urls[$m]='http://localhost/status' in $confd/phpfpm.conf"
+ error "cannot find status on URL '${phpfpm_url[$m]}'. Please set phpfpm_urls[$m]='http://localhost/status' in $confd/phpfpm.conf"
unset phpfpm_urls[$m]
continue
fi
done
if [ ${#phpfpm_urls[@]} -eq 0 ]; then
- echo >&2 "phpfpm: no phpfpm servers found. Please set phpfpm_urls[name]='url' to whatever needed to get status to the phpfpm server, in $confd/phpfpm.conf"
+ error "no phpfpm servers found. Please set phpfpm_urls[name]='url' to whatever needed to get status to the phpfpm server, in $confd/phpfpm.conf"
return 1
fi
cat <<EOF
CHART phpfpm_$m.connections '' "PHP-FPM Active Connections" "connections" phpfpm phpfpm.connections line $((phpfpm_priority + 1)) $phpfpm_update_every
DIMENSION active '' absolute 1 1
-DDIMENSION maxActive 'max active' absolute 1 1
+DIMENSION maxActive 'max active' absolute 1 1
DIMENSION idle '' absolute 1 1
CHART phpfpm_$m.requests '' "PHP-FPM Requests" "requests/s" phpfpm phpfpm.requests line $((phpfpm_priority + 2)) $phpfpm_update_every
CHART phpfpm_$m.performance '' "PHP-FPM Performance" "status" phpfpm phpfpm.performance line $((phpfpm_priority + 3)) $phpfpm_update_every
DIMENSION reached 'max children reached' absolute 1 1
EOF
- if [[ ${phpfpm_slow_requests} != "-1" ]]
+ if [ $((phpfpm_slow_requests)) -ne -1 ]
then
- cat <<EOF
-DIMENSION slow 'slow requests' absolute 1 1
-EOF
+ echo "DIMENSION slow 'slow requests' absolute 1 1"
fi
done
BEGIN phpfpm_$m.performance $1
SET reached = $((phpfpm_max_children_reached))
EOF
- if [[ ${phpfpm_slow_requests} != "-1" ]]
+ if [ $((phpfpm_slow_requests)) -ne -1 ]
then
- cat << EOF
-SET slow = $((phpfpm_slow_requests))
-EOF
+ echo "SET slow = $((phpfpm_slow_requests))"
fi
echo "END"
done
return 0
}
+
+phpfpm_check
+phpfpm_create
+phpfpm_update