chiark / gitweb /
some news graphs
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Jun 2010 18:00:48 +0000 (19:00 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Jun 2010 18:00:48 +0000 (19:00 +0100)
cgi

diff --git a/cgi b/cgi
index acebfb97a6b4e02385038228359eb35607c2584f..56d4c6660bf4853fadd97384d275343ba39abab1 100755 (executable)
--- a/cgi
+++ b/cgi
@@ -13,6 +13,7 @@ sub fail ($) {
 }
 
 our $R= '/var/lib/collectd/rrd/chiark.greenend.org.uk';
+our $SELF= '/home/ijackson/things/rrd-graphs';
 
 my $self= url(-relative=>1);
 
@@ -129,6 +130,45 @@ foreach my $src (<$R/df/df-*.rrd>) {
           ]);
 }
 
+foreach my $src (<$SELF/news-stats/*.rrd>) {
+    my $site= $src;
+    $site =~ s,.*/,,;
+    $site =~ s,\.rrd$,,;
+    $site =~ s,_(in|out)$,,;
+    my $inout= $1;
+    $site =~ s/^([-.0-9a-z]+)_//;
+    my $us= $1;
+    graph('News',
+         $inout eq 'out' ? "$us -> $site" : "$site -> $us",
+         {
+               Slower => 1,
+           }, $inout eq 'out' ?
+         [
+          (map { "DEF:$_=$src:$_:AVERAGE" }
+               qw(missing offered deferred unwanted accepted
+                  rejected body_missing)),
+          "AREA:accepted#00f:ok",
+          "AREA:body_missing#ff0:missing:STACK",
+          "AREA:rejected#f00:rejected:STACK",
+          "AREA:unwanted#bbb:unwanted:STACK",
+          "AREA:deferred#eee:deferred:STACK",
+          "LINE:offered#080:",
+          ] :
+         [
+          (map { "DEF:$_=$src:$_:AVERAGE" }
+               qw(accepted refused rejected duplicate)),
+          (map { ("DEF:bytes_$_=$src:${_}_size:AVERAGE",
+                  "CDEF:kb_$_=bytes_$_,1024,/")
+             } qw(accepted duplicate)),
+          "AREA:accepted#00f:ok:STACK",
+          "AREA:rejected#f00:rej:STACK",
+          "AREA:duplicate#000:dupe:STACK",
+          "AREA:refused#bbb:unw:STACK",
+          "LINE:kb_duplicate#ff0:kb dupe",
+          "LINE:kb_accepted#008:kb",
+          ]);
+}
+
 if (param('debug')) {
     print "Content-Type: text/plain\n\n";
 }