- Repository
- Munin (master)
- Last change
- 2018-03-24
- Graph Categories
- Language
- Perl
nut_volts
Sadly there is no documentation for this plugin.
#!/usr/bin/perl
#
# Plugin to monitor UPS via the upsc command
#
# Parameters:
#
# env.upsname <name@host> (default: "bertha@127.0.0.1")
# env.upsc <command> (default: "upsc")
#
use strict;
my %status;
my %config = (
upsname => $ENV{"upsname"} ? $ENV{"upsname"} : 'bertha@127.0.0.1',
upsc => $ENV{"upsc"} ? $ENV{"upsc"} : 'upsc'
);
my %graph = (
'input_voltage' => {
label => 'input',
type => 'GAUGE',
draw => 'LINE2'
},
'input_voltage_maximum' => {
label => 'max input seen',
type => 'GAUGE',
draw => 'LINE1'
},
'input_voltage_minimum' => {
label => 'min input seen',
type => 'GAUGE',
draw => 'LINE1'
},
'output_voltage' => {
label => 'output',
type => 'GAUGE',
draw => 'LINE2'
}
);
if ( defined $ARGV[0] and $ARGV[0] eq 'config' ) {
print "graph_title UPS Voltages - $config{upsname}\n";
print "graph_args -l 115\n";
print "graph_category sensors\n";
print "graph_vlabel Volts\n";
foreach my $key (keys %graph) {
print "$key.label $graph{$key}->{label}\n";
print "$key.type $graph{$key}->{type}\n";
print "$key.draw $graph{$key}->{draw}\n";
}
} else {
&fetch_values;
}
sub fetch_values {
my $data = `$config{upsc} $config{upsname}`;
while ($data =~ /([a-z.]+): (.+)\b/g) {
my $label = $1;
my $value = $2;
$label =~ s/\./_/g;
$status{$label} = $value;
}
foreach my $label (sort keys %graph) {
print "$label.value $status{$label}\n";
}
}