use Net::SNMP;
use IO::Socket::INET;
use RRDs;
+use File::Copy;
use Data::Dumper;
$UPSGRAPH::outdir = "";
foreach my $host (@$hosts) {
my $rrdfile = $host->{'rrdfile'};
+ foreach my $var (keys(%{$host->{'vars'}})) {
+ $host->{'vars'}->{$var}->{'min'} = 'U' if (!defined($host->{'vars'}->{$var}->{'min'}));
+ $host->{'vars'}->{$var}->{'max'} = 'U' if (!defined($host->{'vars'}->{$var}->{'max'}));
+ }
+
if (-e "${rrdfile}") {
print "Reading old ${rrdfile} to preserve data...\n";
if (defined($rrdinfo->{"ds[${field}].max"})) {
if ($rrdinfo->{"ds[${field}].max"} ne $host->{'vars'}->{$field}->{'max'}) {
- print "Max differs\n";
RRDs::tune("${rrdfile}.${field}","-a",$field.":".$host->{'vars'}->{$field}->{'max'});
}
} else {
}
foreach my $var (@{$host->{'fields'}}) {
- my @graphdef = ("-t", $hostname." - ".$vars->{$var}->{'name'}, "DEF:${var}=${rrdfile}.${var}:${var}:AVERAGE", "LINE1:${var}#FF0000");
+ my @graphdef = ("--lazy", "-t", $hostname." - ".$vars->{$var}->{'name'}, "DEF:${var}=${rrdfile}.${var}:${var}:AVERAGE", "LINE1:${var}#FF0000");
(my $averages, my $width, my $height) =
RRDs::graph("${outdir}/${hostname}.${var}.png.new",
"-w", "720", @graphdef);
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png");
+ copy("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png");
}
print HTML "<a href=\"${hostname}.${var}.html\"><img src=\"${hostname}.${var}.png\" width=\"${width}\" height=\"${height}\" border=\"0\"></a><br>\n";
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.long.png.new", "${outdir}/${hostname}.${var}.long.png");
+ copy("${outdir}/${hostname}.${var}.long.png.new", "${outdir}/${hostname}.${var}.long.png");
}
print HTML2 "<img src=\"${hostname}.${var}.long.png\" width=\"${width}\" height=\"${height}\"><br>";
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.week.png.new", "${outdir}/${hostname}.${var}.week.png");
+ copy("${outdir}/${hostname}.${var}.week.png.new", "${outdir}/${hostname}.${var}.week.png");
}
print HTML2 "<img src=\"${hostname}.${var}.week.png\" width=\"${width}\" height=\"${height}\"><br>";
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.year.png.new", "${outdir}/${hostname}.${var}.year.png");
+ copy("${outdir}/${hostname}.${var}.year.png.new", "${outdir}/${hostname}.${var}.year.png");
}
print HTML2 "<img src=\"${hostname}.${var}.year.png\" width=\"${width}\" height=\"${height}\"><br>";