munin-contrib/plugins/sar/iostat-cputps-average

78 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# Script to monitor iostat cpu|tps.
#
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
judge=`basename $0 | sed 's/^iostat_//g'`
current=`date +%H":"%M":"%S`;
tenMago=`date --date "10 minutes ago" +%H":"%M":"%S`
export LANG=en_US.UTF-8
# autoconf
if [ "$1" == "autoconf" ]; then
if ( sar 1 1 >/dev/null 2>&1 ); then
echo yes
else
if [ $? -eq 127 ]; then
echo "no (could not run \"sar\")"
else
echo no
fi
fi
exit 0
fi
ARRAY=( `sar -p -d -s ${tenMago} -e ${current} | grep -v nodev | grep "Average" | awk '{ print $2 , $3 , $10 }'` )
# config
if [ "$1" == "config" ]; then
if [ "$judge" == cpu_average ]; then
echo 'graph_title iostat util'
echo 'graph_args --upper-limit 100 -l 0'
echo 'graph_vlabel %'
echo 'graph_category System'
for (( i=0 ; i<${#ARRAY[*]} ; i++ )) ; do
echo "_dev_${ARRAY[i]}.label ${ARRAY[i]}"
i=`expr $i + 2`
done
exit 0
fi
if [ "$judge" == tps_average ]; then
echo 'graph_title iostat tps'
echo 'graph_args -l 0'
echo 'graph_vlabel tps'
echo 'graph_category System'
for (( i=0 ; i<${#ARRAY[*]} ; i++ )) ; do
echo "_dev_${ARRAY[i]}.label ${ARRAY[i]}"
i=`expr $i + 2`
done
exit 0
fi
fi
# other
if [ "$judge" == cpu_average ]; then
for (( i=0 ; i<${#ARRAY[*]} ; i++ )) ; do
echo -n "_dev_${ARRAY[i]}.value "
i=`expr $i + 2`
echo "${ARRAY[i]}"
done
fi
if [ "$judge" == tps_average ]; then
for (( i=0 ; i<${#ARRAY[*]} ; i++ )) ; do
echo -n "_dev_${ARRAY[i]}.value "
i=`expr $i + 1`
echo "${ARRAY[i]}"
i=`expr $i + 1`
done
fi