#!/usr/bin/perl -w use strict; my ($Args) = @ARGV; my $expecter = "/path/to/beboxstats.expect"; if ($Args) { # work out line to grab if ($Args eq 'autoconf') { # Check the expect script that polls the router exists unless ( -e $expecter ) { print "no (Can't find expect script. Check value of \$expecter: $expecter)\n"; } else { print "yes\n"; } } elsif ($Args eq 'config') { # print out plugin parameters printf(" graph_title bebox line stats graph_vlabel deciBels graph_category network graph_info This graph shows the various line parameters attenuationdownstream.label Downstream Attenuation attenuationupstream.label Upstream Attenuation margindownstream.label Downstream Noise Margin marginupstream.label Upstream Noise Margin outputpowerdownstream.label Downstream Output Power outputpowerupstream.label Upstream Output Power margindownstream.type GAUGE outputpowerupstream.type GAUGE attenuationdownstream.type GAUGE marginupstream.type GAUGE outputpowerdownstream.type GAUGE attenuationupstream.type GAUGE "); # .label is the Key on the graph } else { printf("Usage: $0 No arguments: print line stats autoconf: print 'yes' config: print config info for Munin\n"); } } else { # if no arguments, just fetch the data and print it out my @insplitted = split(' ', `$expecter | grep dB`); print "margindownstream.value $insplitted[3]\n"; print "marginupstream.value $insplitted[4]\n"; print "attenuationdownstream.value $insplitted[8]\n"; print "attenuationupstream.value $insplitted[9]\n"; print "outputpowerdownstream.value $insplitted[13]\n"; print "outputpowerupstream.value $insplitted[14]\n"; }