my ($section, $group, $elem, $basis, $args) = @_;
$basis->{Args}= $args;
$basis->{Slower}= 0 unless exists $basis->{Slower};
-
+ $basis->{TimeRanges} ||= \@timeranges;
$graphs{$section,$group,$elem}= $basis;
if (!exists $group_elems{$section,$group}) {
# new group then
next if $site eq '-';
graph_of_group("News", $site, $inout,
{
- Slower => 1,
- Units => '[art/s]'
+ Units => '[art/s]',
+ TimeRanges => [ map { $_*86400 } qw(1 7 31), 366, 366*3 ]
}, $inout eq 'out' ?
[
(map { "DEF:$_=$src:$_:AVERAGE" }
"AREA:rejected#f00:rej:STACK",
"AREA:duplicate#000:dupe:STACK",
"AREA:refused#aaa:unw:STACK",
+ "CDEF:kb_accepted_smooth=kb_accepted,<interval/60>,TREND",
"LINE:kb_duplicate#ff0:kb dupe",
- "LINE:kb_accepted#008:kb",
+ "LINE:kb_accepted_smooth#008:~kb",
]);
}
my $g= $graphs{$section,$group,$elem};
die unless $g;
- my @args= @{ $g->{Args} };
-
my $width= num_param('w',370,100,1600);
my $height= num_param('h',200,100,1600);
my $sloth= param('sloth');
die unless defined $sloth;
$sloth =~ m/^(\d+)$/ or die;
- my $end= $timeranges[$sloth];
+ my $end= $g->{TimeRanges}[$sloth];
die unless defined $end;
+
+ my @args= @{ $g->{Args} };
+ s,\<interval/(\d+)\>, $end/$1 ,ge foreach @args;
unshift @args, qw(--end now --start), "end-${end}s";
if (param('debug')) {
$title .= " $g->{Units}" if $g->{Units};
unshift @args, '-t', $title;
-
+
exec (qw(rrdtool graph - -a PNG --full-size-mode),
'-w',$width, '-h',$height,
@args);
#!/usr/bin/perl -w
+# killall newstailer
+# with-lock-ex -f data/news/lock sh -xc \
+# "rm data/news/*.rrd; ./newstailer -Odata/news/ -D \
+# /var/log/news/news.notice.{6,5,4,3,2,1}.gz /var/log/news/news.notice{.0,} ''"
+
use strict qw(refs vars);
use POSIX;
Step => 60,
DstArguments => "7200:0:U",
Xff => 0.5,
- Archives => [ [ 3600*4, 60 ], # 4hr, 1min resolution
- [ 3600*25, 180 ], # 25h, 3min resolution
- [ 86400*14*5, 3600 ], # 14wks, 1hr resolution
- [ 86400*370*2, 3600*24 ] ], # 2yr+, 1day resolution
+ Archives => [ [ 3600*4, 60 ], # 4hr, 1min resolution
+ [ 3600*25, 180 ], # 25h, 3min resolution
+ [ 86400*8, 600 ], # 8d, 10min resolution
+ [ 86400*7*14, 3600*2 ], # 14wks, 2hr resolution
+ [ 86400*366, 3600*6 ], # 1yr, 6hr resolution
+ [ 86400*366*3, 3600*24 ] ], # 3yr, 1d resolution
);
our @fields_in= qw(seconds accepted refused rejected duplicate