]> git.sesse.net Git - cubemap/blobdiff - munin/cubemap
Make the Munin plugin stop count keepalive clients in the total.
[cubemap] / munin / cubemap
index b2929823ea5b08bcb8427cfec1e040bb009859d4..19225beffde86ef3c43551edf4081469649c398d 100755 (executable)
@@ -34,10 +34,14 @@ while (<$config>) {
 close $config;
 
 my $total = 0; 
+my $unknown = 0;
 if ($mode eq 'config') {       
        print "total.label Total number of viewers\n";
        print "total.type GAUGE\n";
        print "total.min 0\n";
+       print "unknown.label Number of connections not watching a stream\n";
+       print "unknown.type GAUGE\n";
+       print "unknown.min 0\n";
 }
 
 open my $stats, "<", $stats_filename
@@ -47,8 +51,12 @@ while (<$stats>) {
        my ($ip, $fd, $mark, $stream, $connected_time, $bytes_sent, $loss_bytes, $loss_events) = 
                /^(\S+) (\d+) (\d+) (\S+) (\d+) (\d+) (\d+) (\d+)/ or die "Invalid stats format";
        $stream =~ s/\?frag=.*//;
-       ++$streams{$stream};
-       ++$total;
+       if (defined($streams{$stream})) {
+               ++$streams{$stream};
+               ++$total;
+       } else {
+               ++$unknown;
+       }
 }
 close $stats;
        
@@ -58,6 +66,7 @@ if ($mode ne 'config') {
                printf "${stream_name}.value %d\n", $streams{$stream};
        }
        printf "total.value %d\n", $total;
+       printf "unknown.value %d\n", $unknown;
 }
 
 sub stream_name {