#! /bin/sh
# Currently the plugin does *not* autostart
#
# It has to be launched via rc.d :
# munin-run if1sec_eth0 acquire

pluginfull="$0"                 # full name of plugin
plugin="${0##*/}"               # name of plugin
pidfile="$MUNIN_PLUGSTATE/munin.$plugin.pid"
cache="$MUNIN_PLUGSTATE/munin.$plugin.value"

IFACE="${0##*/if1sec_}"         # interface

if [ ! -r "/sys/class/net/$IFACE/statistics/tx_bytes" ]
then
	echo "# Unknown Interface : $IFACE"
	exit 1
fi

if [ "$1" = "acquire" ]
then
        (
                while sleep 1
                do
                        echo $(
                                date +%s
                                cat /sys/class/net/$IFACE/statistics/tx_bytes
                                cat /sys/class/net/$IFACE/statistics/rx_bytes
                        )
                done | awk "{
                                print \"${IFACE}_tx.value \" \$1 \":\" \$2;
                                print \"${IFACE}_rx.value \" \$1 \":\" \$3;
				system(\"\");
                        }" >> $cache
        ) &
        echo $! > $pidfile
        exit 0
fi


if [ "$1" = "config" ]
then
        cat <<EOF
graph_title Interface 1sec stats for ${IFACE}
graph_category 1sec::network
graph_data_size custom 1d, 10s for 1w, 1m for 1t, 5m for 1y
graph_vlabel Bytes
update_rate 1
${IFACE}_tx.label ${IFACE} TX bytes
${IFACE}_tx.type DERIVE
${IFACE}_tx.min 0
${IFACE}_rx.label ${IFACE} RX bytes
${IFACE}_rx.type DERIVE
${IFACE}_rx.min 0
EOF
        exit 0
fi

# values
cat ${cache}
> ${cache}

exit 0
