diff options
Diffstat (limited to 'munin/total_network_traffic.pl')
-rwxr-xr-x | munin/total_network_traffic.pl | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/munin/total_network_traffic.pl b/munin/total_network_traffic.pl new file mode 100755 index 0000000..2c0799b --- /dev/null +++ b/munin/total_network_traffic.pl @@ -0,0 +1,31 @@ +#! /usr/bin/perl -I/root/tgmanage/include +use strict; +use warnings; +use lib 'include'; +use nms; +use Data::Dumper::Simple; + +# By the looks of this code, the in/out values are from the perspective of the +# switch. However, something gets flipped somewhere which makes it from the +# perspective of the client. I have no idea why. Have fun! + +my $dbh = nms::db_connect(); +$dbh->{AutoCommit} = 0; + +my $total_traffic = $dbh->prepare("select sum(bytes_in) * 8 / 1048576.0 / 1024.0 as traffic_in, sum(bytes_out) * 8 / 1048576.0 / 1024.0 as traffic_out from get_current_datarate() natural join switches where switchtype like 'dlink3100%' and port < 45") + or die "Can't prepare query: $!"; + +$total_traffic->execute; +print <<EOF; +graph_title Total network traffic +graph_vlabel Gb/s +graph_scale no +EOF +my $ref = $total_traffic->fetchrow_hashref; +print "total_network_traffic_in.label Total incoming traffic\n"; +print "total_network_traffic_in.value ". $ref->{'traffic_in'}."\n"; +print "total_network_traffic_out.label Total outgoing traffic\n"; +print "total_network_traffic_out.value ". $ref->{'traffic_out'}."\n"; +$total_traffic->finish; +$dbh->disconnect(); +exit 0; |