Make the Munin plugin stop count keepalive clients in the total.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 22 Apr 2018 18:19:27 +0000 (20:19 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 22 Apr 2018 18:19:27 +0000 (20:19 +0200)
Now that we have better control of HLS, it's better to just label
these as “unknown” and not count them in the stream total.

munin/cubemap

index b292982..19225be 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 {