#!/bin/sh
#
# Returns amount of traffic tinydns has handled 
# within the last 5 minutes
#
# Only requests where tinydns is authoritative is reported, requests
# where tinydns is not authoritative (NOTAUTH) is not reported.
#
# By Rasmus Skaarup <dlog@gal.dk> - Aug 2006
#
#
# Magic markers - optional - used by installation scripts and
# munin-config:
#
#%# family=manual
#%# capabilities=autoconf

DLOG=/usr/local/dlog/bin/dodlog.pl
LOGDIR=/var/service/rbldns/log/main/

CMD="$DLOG rbldns raw $LOGDIR"

if [ "$1" = "autoconf" ]; then
        echo yes
        exit 0
fi

if [ "$1" = "config" ]; then

        echo 'graph_title rbldns traffic'
        echo 'graph_args --base 1000 -l 0 '
        echo 'graph_vlabel requests'
        echo 'graph_category DNS'
        echo 'graph_order drbl1 drbl2'
        echo 'drbl1.label ANSWERED'
        echo 'drbl1.min 0'
        echo 'drbl1.draw LINE2'
        echo 'drbl2.label INVALID'
        echo 'drbl2.min 0'
        echo 'drbl2.draw LINE2'
        exit 0

fi

OUTPUT=`$CMD`

ANSWER1=`echo "$OUTPUT" | grep ANSWERED:1: | cut -f 2 -d:`
ANSWER2=`echo "$OUTPUT" | grep ANSWERED:2: | cut -f 2 -d:`
ANSWER5=`echo "$OUTPUT" | grep ANSWERED:5: | cut -f 2 -d:`
ANSWER6=`echo "$OUTPUT" | grep ANSWERED:6: | cut -f 2 -d:`
ANSWER12=`echo "$OUTPUT" | grep ANSWERED:12: | cut -f 2 -d:`
ANSWER15=`echo "$OUTPUT" | grep ANSWERED:15: | cut -f 2 -d:`
ANSWER16=`echo "$OUTPUT" | grep ANSWERED:16: | cut -f 2 -d:`
ANSWER28=`echo "$OUTPUT" | grep ANSWERED:28: | cut -f 2 -d:`
ANSWER252=`echo "$OUTPUT" | grep ANSWERED:252: | cut -f 2 -d:`
ANSWER255=`echo "$OUTPUT" | grep ANSWERED:255: | cut -f 2 -d:`

if [ "$ANSWER1" = "" ]; then
  ANSWER1=0
fi
if [ "$ANSWER2" = "" ]; then
  ANSWER2=0
fi
if [ "$ANSWER5" = "" ]; then
  ANSWER5=0
fi
if [ "$ANSWER6" = "" ]; then
  ANSWER6=0
fi
if [ "$ANSWER12" = "" ]; then
  ANSWER12=0
fi
if [ "$ANSWER15" = "" ]; then
  ANSWER15=0
fi
if [ "$ANSWER16" = "" ]; then
  ANSWER16=0
fi
if [ "$ANSWER28" = "" ]; then
  ANSWER28=0
fi
if [ "$ANSWER252" = "" ]; then
  ANSWER252=0
fi
if [ "$ANSWER255" = "" ]; then
  ANSWER255=0
fi

INVALID1=`echo "$OUTPUT" | grep INVALID:1: | cut -f 2 -d:`
INVALID2=`echo "$OUTPUT" | grep INVALID:2: | cut -f 2 -d:`
INVALID5=`echo "$OUTPUT" | grep INVALID:5: | cut -f 2 -d:`
INVALID6=`echo "$OUTPUT" | grep INVALID:6: | cut -f 2 -d:`
INVALID12=`echo "$OUTPUT" | grep INVALID:12: | cut -f 2 -d:`
INVALID15=`echo "$OUTPUT" | grep INVALID:15: | cut -f 2 -d:`
INVALID16=`echo "$OUTPUT" | grep INVALID:16: | cut -f 2 -d:`
INVALID28=`echo "$OUTPUT" | grep INVALID:28: | cut -f 2 -d:`
INVALID252=`echo "$OUTPUT" | grep INVALID:252: | cut -f 2 -d:`
INVALID255=`echo "$OUTPUT" | grep INVALID:255: | cut -f 2 -d:`

if [ "$INVALID1" = "" ]; then
  INVALID1=0
fi
if [ "$INVALID2" = "" ]; then
  INVALID2=0
fi
if [ "$INVALID5" = "" ]; then
  INVALID5=0
fi
if [ "$INVALID6" = "" ]; then
  INVALID6=0
fi
if [ "$INVALID12" = "" ]; then
  INVALID12=0
fi
if [ "$INVALID15" = "" ]; then
  INVALID15=0
fi
if [ "$INVALID16" = "" ]; then
  INVALID16=0
fi
if [ "$INVALID28" = "" ]; then
  INVALID28=0
fi
if [ "$INVALID252" = "" ]; then
  INVALID252=0
fi
if [ "$INVALID255" = "" ]; then
  INVALID255=0
fi

TOTANSWER=`expr $ANSWER1 + $ANSWER2 + $ANSWER5 + $ANSWER6 + $ANSWER12 + $ANSWER15 + $ANSWER16 + $ANSWER28 + $ANSWER252 + $ANSWER255`
TOTINVALID=`expr $INVALID1 + $INVALID2 + $INVALID5 + $INVALID6 + $INVALID12 + $INVALID15 + $INVALID16 + $INVALID28 + $INVALID252 + $INVALID255`


echo "drbl1.value $TOTINVALID"
echo "drbl2.value $TOTINVALID"
