#!/bin/sh
#
# Plugin to monitor the number of bytes sent from and received by mysql.
#
# Parameters:
#
# 	config
# 	autoconf
#
# Configuration variables
#
#   mysqlopts    - Options to pass to mysql
#
# $Log$
# Revision 1.6  2004/12/10 10:47:47  jimmyo
# Change name from ${scale} to ${graph_period}, to be more consistent.
#
# Revision 1.5  2004/12/09 22:12:55  jimmyo
# Added "graph_period" option, to make "graph_sums" usable.
#
# Revision 1.4  2004/11/21 00:16:56  jimmyo
# Changed a lot of plugins so they use DERIVE instead of COUNTER.
#
# Revision 1.3  2004/05/20 13:57:12  jimmyo
# Set categories to some of the plugins.
#
# Revision 1.2  2004/04/27 18:58:53  jimmyo
# Fixed bug in mysql-plugins (Deb#233762).
#
# Revision 1.1  2004/01/02 18:50:00  jimmyo
# Renamed occurrances of lrrd -> munin
#
# Revision 1.1.1.1  2004/01/02 15:18:07  jimmyo
# Import of LRRD CVS tree after renaming to Munin
#
# Revision 1.7  2003/11/07 22:12:50  jimmyo
# Changed deprecated plugin options
#
# Revision 1.6  2003/11/07 17:43:16  jimmyo
# Cleanups and log entries
#
#
#
#%# family=auto
#%# capabilities=autoconf

MYSQLOPTS="$mysqlopts";
MYSQLADMIN=${mysqladmin:-mysqladmin}

if [ "$1" = "autoconf" ]; then
	$MYSQLADMIN --version 2>/dev/null >/dev/null
	if [ $? -eq 0 ]
	then
		$MYSQLADMIN $MYSQLOPTS extended-status 2>/dev/null >/dev/null
		if [ $? -eq 0 ]
		then
			echo yes
			exit 0
		else
			echo "no (could not connect to mysql)"
		fi
	else
		echo "no (mysqladmin not found)"
	fi
	exit 1
fi

if [ "$1" = "config" ]; then
	echo 'graph_title MySQL throughput'
	echo 'graph_args --base 1024'
	echo 'graph_vlabel bytes received (-) / sent (+) per ${graph_period}'
	echo 'graph_category mysql'
	echo 'recv.label transfer rate'
	echo 'recv.type DERIVE'
	echo 'recv.min 0'
	echo 'recv.draw LINE2'
	echo 'recv.max 80000000'
	echo 'recv.graph no'
	echo 'sent.label transfer rate'
	echo 'sent.type DERIVE'
	echo 'sent.min 0'
	echo 'sent.max 80000000'
	echo 'sent.draw LINE2'
	echo 'sent.negative recv'
	exit 0
fi

($MYSQLADMIN $MYSQLOPTS extended-status 2>/dev/null || ( echo Bytes_sent a a U; echo Bytes_received a a U)) | awk '/Bytes_sent/ { print "sent.value " $4} /Bytes_received/ { print "recv.value " $4}'
