munin-contrib/plugins/php/php-cgi

70 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
# -*- sh -*-
#
# Plugin to monitor the number of PHP processes on the machine.
#
# Copyright Khalid Baheyeldin 2009 http://2bits.com
#
# Parameters:
#
# config (required)
# autoconf (optional - used by munin-config)
#
# Magick markers (optional - used by munin-config and some installation
# scripts):
#%# family=manual
#%# capabilities=autoconf
if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo "graph_title PHP CGI Memory";
echo "graph_vlabel PHP CGI Memory usage in GB";
echo "graph_category processes";
echo "graph_args -l 0";
echo "php_cgi_ram.label PHP CGI Used RAM";
echo "php_cgi_ram.draw LINE2";
echo "php_cgi_processes.info Number of PHP CGI processes";
echo "php_cgi_processes.label processes";
exit 0
fi
CMD_GREP=`which grep`
if [ ! -e ${CMD_GREP} ]; then
echo "Command grep not found!"
exit 1
fi
CMD_SED=`which sed`
if [ ! -e ${CMD_SED} ]; then
echo "Command sed not found!"
exit 1
fi
CMD_WC=`which wc`
if [ ! -e ${CMD_WC} ]; then
echo "Command wc not found!"
exit 1
fi
CMD_AWK=`which awk`
if [ ! -e ${CMD_AWK} ]; then
echo "Command awk not found!"
exit 1
fi
CMD_BC=`which bc`
if [ ! -e ${CMD_BC} ]; then
echo "Command bc not found!"
exit 1
fi
echo -n "php_cgi_processes.value "
ps ax | grep -i php-cgi | grep -v grep | wc -l | sed 's/\t +//' | sed 's/ *//'
MEMORY=0
for mem in `ps avx | grep -i php-cgi | grep -v grep | grep "Ss" | awk '{ print $7 }'`; do
MEMORY=$(($MEMORY + $mem))
done
echo -n "php_cgi_ram.value "
echo "scale=4;${MEMORY}/1024/1024" | bc