X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=munin%2Fcubemap_input;fp=munin%2Fcubemap_input;h=00b6ec37513ed9432a1a6cbf33865250b0e64f8a;hp=0000000000000000000000000000000000000000;hb=209631aff205c124059b9e4ae7e93c3fb7a4194f;hpb=b3cabe9eb67ad22e671cc47408641b4a24a1af0a diff --git a/munin/cubemap_input b/munin/cubemap_input new file mode 100755 index 0000000..00b6ec3 --- /dev/null +++ b/munin/cubemap_input @@ -0,0 +1,37 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use Munin::Plugin; + +my $input_stats_filename = $ENV{"cubemap_input_stats"} // "/var/lib/cubemap/cubemap-input.stats"; + +my $mode = $ARGV[0] // "print"; +if ($mode eq 'config') { + print "graph_title Cubemap inputs\n"; + print "graph_category network\n"; + print "graph_vlabel viewers\n"; +} + +open my $stats, "<", $input_stats_filename + or die "$input_stats_filename: $!"; +while (<$stats>) { + chomp; + my ($url, $bytes_received, $data_bytes_received, $connection_time) = + /^(\S+) (\d+) (\d+) (-|\d+)/ or die "Invalid stats format"; + my $stream_name = stream_name($url); + if ($mode eq 'config') { + print "${stream_name}.label Data input bitrate of $url\n"; + print "${stream_name}.type DERIVE\n"; + print "${stream_name}.min 0\n"; + } else { + printf "${stream_name}.value %d\n", $data_bytes_received * 8; + } +} +close $stats; + +sub stream_name { + my $stream = shift; + $stream =~ y/a-z0-9/_/c; + return $stream; +}