81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
##### OPTIONS VERIFICATION #####
|
|
if [ -z "$1" ]; then
|
|
exit 1
|
|
fi
|
|
##### PARAMETERS #####
|
|
METRIC="$1"
|
|
POOL_PORT="${3:-9001}"
|
|
STATSURL="${2:-http://localhost/fpm-status?port=$POOL_PORT}"
|
|
CURL="/usr/bin/curl"
|
|
CACHE_TTL="55"
|
|
CACHE_FILE="/tmp/zabbix.fpm-status.`echo $STATSURL | md5sum | cut -d" " -f1`.cache"
|
|
EXEC_TIMEOUT="1"
|
|
NOW_TIME=`date '+%s'`
|
|
##### RUN #####
|
|
if [ -s "${CACHE_FILE}" ]; then
|
|
CACHE_TIME=`stat -c"%Y" "${CACHE_FILE}"`
|
|
else
|
|
CACHE_TIME=0
|
|
fi
|
|
DELTA_TIME=$((${NOW_TIME} - ${CACHE_TIME}))
|
|
#
|
|
if [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ]; then
|
|
sleep $((${EXEC_TIMEOUT} - ${DELTA_TIME}))
|
|
elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ]; then
|
|
echo "" >> "${CACHE_FILE}" # !!!
|
|
DATACACHE=`${CURL} --insecure -s "${STATSURL}" 2>&1`
|
|
echo "${DATACACHE}" > "${CACHE_FILE}" # !!!
|
|
chmod 640 "${CACHE_FILE}"
|
|
fi
|
|
|
|
#
|
|
case $METRIC in
|
|
pool)
|
|
grep "^pool:" $CACHE_FILE | cut -d ':' -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
process_manager)
|
|
grep "^process manager:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
start_time)
|
|
grep "^start time:" $CACHE_FILE | sed 's|^start time:\s\+||'
|
|
;;
|
|
start_since)
|
|
grep "^start since:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
accepted_conn)
|
|
grep "^accepted conn:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
listen_queue)
|
|
grep "^listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
max_listen_queue)
|
|
grep "^max listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
listen_queue_len)
|
|
grep "^listen queue len:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
idle_processes)
|
|
grep "^idle processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
active_processes)
|
|
grep "^active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
total_processes)
|
|
grep "^total processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
max_active_processes)
|
|
grep "^max active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
max_children_reached)
|
|
grep "^max children reached:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
;;
|
|
*)
|
|
echo "Unsupported metric $METRIC"
|
|
exit 1
|
|
;;
|
|
esac
|
|
#
|
|
|
|
exit 0
|