Repository
Munin (contrib)
Last change
2014-09-06
Graph Categories
Keywords
Language
Perl

nsr_device_writing

Sadly there is no documentation for this plugin.

#!/usr/bin/perl
use strict;

my $magic = `echo -e "show name;message\nprint type: nsr device" |nsradmin -i -`;
#                        name: /dev/nst0;
#                     message: "writing at 57 MB/s, 4063 GB";
#
#                        name: /dev/nst1;
#                     message: "reading, data ";

my %hash = ();

while ($magic =~ m! name: (\S+?);\s+message: "(.+?)";!sg) {
  my ($dev,$mess) = ($1,$2);
  $hash{$dev} ||= {};
  $mess =~ m!writing at (\d+) (.?B)/s!;
  if ($2 eq 'B') {
    $hash{$dev}->{writing} = $1+0;
  }
  elsif ($2 eq 'KB') {
    $hash{$dev}->{writing} = $1*1024;
  }
  elsif ($2 eq 'MB') {
    $hash{$dev}->{writing} = $1*1024*1024;
  }
  elsif ($2 eq 'GB') {
    $hash{$dev}->{writing} = $1*1024*1024*1024;
  }
}

if ($ARGV[0] eq "config") {
  print <<_EOM;
graph_title NSR Device write speed (bytes/s)
graph_args -l 0 --base 1000
graph_vlabel bytes/s
graph_category Network
graph_info Shows how much writing each device is doing.
_EOM
  foreach my $d (sort keys %hash) {
    my ($l) = ($d =~ m!([A-Za-z0-9]+)$!);
    print "$l.label $d\n"
    # print $l.warning ??\n";
    # print "$l.critical ??\n";
  }
}
else {
  foreach my $d (sort keys %hash) {
    my ($l) = ($d =~ m!([A-Za-z0-9]+)$!);
    print "$l.value ".$hash{$d}->{writing}."\n";
  }
}