Add total upload/download to network usage graph
[invirt/scripts/munin.git] / web / usage.cgi
index af8901b..92ea122 100755 (executable)
@@ -7,6 +7,8 @@ use RRDs;
 use File::Spec::Functions;
 use subs 'die';
 
+$ENV{"RRDCACHED_ADDRESS"} = "/var/run/munin/rrdcached.sock";
+
 our %graph_types =
   (cpu =>
    {
@@ -27,12 +29,12 @@ our %graph_types =
     args => ["--title", "Domain network usage",
             qw(
                 --base 1000
-                --vertical-label), "bits in (-) / out (+) per ${graph_period}",
+                --vertical-label), "bits in (-) / out (+) per second",
            ],
-    cdef => "8,*",
     draw => "LINE",
-    sub_types => [{suffix => "_up", cdef => "8,*"},
-                 {suffix => "_down", cdef => "-8,*"},
+    total_unit => "B",
+    sub_types => [{suffix => "_up", cdef => "8,*", total_name => "Total upload"},
+                 {suffix => "_down", cdef => "-8,*", total_name => "Total download"},
                 ]
    },
                   );
@@ -96,10 +98,15 @@ foreach my $sub_type (@sub_types) {
     $files[$i] =~ m|^([^:]+)$|;
     my $data = "data$suffix$i";
     push @args, "DEF:o$data=$1:42:AVERAGE";
-    push @args, "CDEF:$data=o$data,UN,0,o$data,IF".($cdef ? ",$cdef" : "");
+    push @args, "CDEF:$data=o$data,UN,0,o$data,IF";
   }
   push @args, "CDEF:total$suffix=0,".join(",+,", map {"data$suffix$_"} 0..$#files).",+";
-  push @args, "$type{draw}:total$suffix#0000FF";
+  push @args, "CDEF:graph$suffix=total$suffix".($cdef ? ",$cdef" : "");
+  push @args, "$type{draw}:graph$suffix#0000FF";
+  if (my $total_name = $sub_type->{"total_name"}) {
+    push @args, "VDEF:t$suffix=total$suffix,TOTAL";
+    push @args, "GPRINT:t$suffix:$total_name %6.2lf %S".$type{"total_unit"};
+  }
 }
 
 $ENV{"PATH"} = "/usr/local/bin:/usr/bin:/bin";