#!/bin/sh
#
#  pdns_recursor munin plugin.
#  Written by Sean Reifschneider <jafo@tummy.com> 2009-12-03
#  Placed in the public domain
#
#  Requires running as root:
#
#    echo '[pdns_rec_*]' >/etc/munin/plugin-conf.d/pdns_rec
#    echo 'user root' >>/etc/munin/plugin-conf.d/pdns_rec

rec_control="/usr/bin/rec_control"

if [ "$1" = "autoconf" ]; then
	if [ -e "$rec_control" ]; then
		echo yes
		exit 0
	else
		echo "no (missing $rec_control)"
		exit 0
	fi
fi

RESENDS="$($rec_control get cache-resends)"
ISRESENDS=""
[ "$RESENDS" != "UNKNOWN" ] && ISRESENDS="resends"

if [ "$1" = "config" ]; then
	echo 'graph_title PDNS Cache'
	echo "graph_order hits misses $ISRESENDS"
	echo 'graph_vlabel entries'
	echo 'graph_info Hit/miss rate'
	echo 'graph_category dns'

	echo 'hits.label hits'
	echo 'hits.min 0'
	echo 'hits.max 100000'
	echo 'hits.type COUNTER'
	echo 'hits.info Cache hits'

	echo 'misses.label misses'
	echo 'misses.min 0'
	echo 'misses.max 100000'
	echo 'misses.type COUNTER'
	echo 'misses.info Cache misses'

	if [ "$RESENDS" != "UNKNOWN" ]; then
		echo 'resends.label resends'
		echo 'resends.min 0'
		echo 'resends.max 100000'
		echo 'resends.type COUNTER'
		echo 'resends.info Cache resends'
	fi

	exit 0
fi

echo hits.value "$($rec_control get cache-hits)"
echo misses.value "$($rec_control get cache-misses)"
[ "$RESENDS" != "UNKNOWN" ] && echo resends.value "$($rec_control get cache-resends)"

exit 0
