#! /bin/bash

#This Plug-in monitors the Pending Tasks in Cassandra TPSTATS output (combined in all Stages)

# Author - Juned Memon



#########THIS part is for Nagios ################################
PROGNAME=`/usr/bin/basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION=`echo '$Revision: 1749 $' | sed -e 's/[^0-9.]//g'`
#. $PROGPATH/utils.sh
.  /usr/local/nagios/libexec/utils.sh


######################################################################

#Function to print Usage
function usage
{
usage1="Usage: $0  [-w <WARN>] [-c <CRIT>]"
usage2="<WARN> is Number of Pending Jobs for WARNing state   Default is 5."
usage3="<CRIT> is Number of Pending Jobs for Critical  state  Default is 10."
echo $usage1
echo""
echo $usage2
echo""
echo "$usage3"


exit $STATE_UNKNOWN
}


WARN=5
CRIT=10

#####################################################################
# get parameter values in Variables

while test -n "$1"; do
    case "$1" in
        -c )
            CRIT=$2
            shift
            ;;
        -w )
            WARN=$2
            shift
            ;;
        -h)
            usage
            ;;
        *)
            echo "Unknown argument: $1"
            usage
            ;;
    esac
    shift
done

#####################################################################

PENDING=$(nodetool -h localhost tpstats |  awk '{if (NR>1 && NR <19) } { sum+=$1} END {print sum} ')

echo "$PENDING Pending Tasks in Cassandra TPSTATS"

#if CRIT > PENDING >WARN then WARNing
if [ $PENDING -ge $WARN ]; then
if [ $PENDING -lt $CRIT ]; then
exitstatus=$STATE_WARNING
exit $exitstatus
fi
fi
# PENDING>CRIT then CRITical
if [ $PENDING -ge $CRIT ]; then
exitstatus=$STATE_CRITICAL
exit $exitstatus
fi

# 0<=PENDING <WARN
if [ $PENDING -le $WARN ]; then
exitstatus=$STATE_OK
exit $exitstatus
fi

