sub graph ($$$$) {
my ($section, $gname, $basis, $args) = @_;
$basis->{Args}= $args;
+ $basis->{DefTimeRange} ||= 3600;
+ $basis->{MinTimeRange} ||= 3600;
+ $basis->{MaxTimeRange} ||= 28*86400;
$graphs{$section,$gname}= $basis;
if (!exists $sections{$section}) {
push @sections, $section;
$vol =~ s,.*/,,;
$vol =~ s,^df-,,;
$vol =~ s,\.rrd$,,;
- graph('Disk space', $vol, { },
+ graph('Disk space', $vol, {
+ MinTimeRange => 86400,
+ MaxTimeRange => (13*7+1)*86400,
+ DefTimeRange => 7*86400
+ },
[
qw(-b 1024 -l 0),
(map { "DEF:$_=$src:$_:AVERAGE" } qw(free used)),
my $detail= param('detail');
if ($detail) {
- die unless $graphs{$section,$detail};
+ my $g= $graphs{$section,$detail};
+ die unless $g;
start_page("$detail graphs");
- foreach my $end (qw(3600 86400 604800 2419200)) {
+ foreach my $end (qw(300 3600 86400 604800 2419200 7948800)) {
+ next if $end < $g->{MinTimeRange};
+ next if $end > $g->{MaxTimeRange};
print "<img src=\"$self?graph=$detail§ion=$section&end=$end\">\n";
}
print end_html();
start_page("$section graphs");
foreach my $gname (@{ $sections{$section} }) {
+ my $g= $graphs{$section,$gname};
print "<a href=\"$self?detail=$gname§ion=$section\">"; #,h2($gname),"</a>";
- print "<img src=\"$self?graph=$gname§ion=$section\"></a>\n";
+ print "<img src=\"$self?graph=$gname§ion=$section&end=$g->{DefTimeRange}\"></a>\n";
}