mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Initial version
This commit is contained in:
parent
df7c3dec6c
commit
dc7486cf00
137
plugins/other/shoutcast
Executable file
137
plugins/other/shoutcast
Executable file
@ -0,0 +1,137 @@
|
||||
#!/usr/local/bin/perl -w
|
||||
# -*- cperl -*-
|
||||
|
||||
=head1 NAME
|
||||
|
||||
shoutcast online - Munin plugin to show online for shoutcast v1.9.8
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
This shows the default configuration of this plugin. You can override
|
||||
the status URL.
|
||||
|
||||
[shoutcast*]
|
||||
env.url http://localhost:8000/7.html
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
1.0
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Stanislav Rudenko aka Sandel
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
none
|
||||
|
||||
=cut
|
||||
|
||||
my $ret = undef;
|
||||
|
||||
if (! eval "require LWP::UserAgent;"){
|
||||
$ret = "LWP::UserAgent not found";
|
||||
}
|
||||
|
||||
my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://localhost:8000/7.html";
|
||||
|
||||
if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" ) {
|
||||
if ($ret){
|
||||
print "no ($ret)\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
my $ua = LWP::UserAgent->new(timeout => 30);
|
||||
$ua->agent('XML Getter (Mozilla Compatible)');
|
||||
|
||||
my $request = HTTP::Request->new( 'GET' => $URL );
|
||||
$request->protocol('HTTP/1.0');
|
||||
|
||||
my $response = $ua->request($request);
|
||||
|
||||
unless ($response->is_success and $response->content =~ /<HTML><meta http-equiv="Pragma" content="no-cache"><\/head><body>/im) {
|
||||
print "no (no shoutcast status on $URL)\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "yes\n";
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ( exists $ARGV[0] and $ARGV[0] eq "config" ) {
|
||||
|
||||
# Default Settings
|
||||
print "graph_title SHOUTcast Online\n";
|
||||
print "graph_args --base 1000\n";
|
||||
print "graph_category shoutcast\n";
|
||||
print "graph_vlabel Connections per \${graph_period}\n";
|
||||
|
||||
# Max Listeners Allowed to Connect to Server
|
||||
print "max_connections.draw AREA\n";
|
||||
print "max_connections.colour cdcfc4\n";
|
||||
print "max_connections.min 0\n";
|
||||
print "max_connections.label Max Slots\n";
|
||||
print "max_connections.type GAUGE\n";
|
||||
|
||||
# Peak Listeners
|
||||
print "ax_used_connections.draw AREA\n";
|
||||
print "ax_used_connections.colour ffd660\n";
|
||||
print "ax_used_connections.min 0\n";
|
||||
print "ax_used_connections.label Peak Listeners\n";
|
||||
print "ax_used_connections.type GAUGE\n";
|
||||
|
||||
# DJ-Online tag must be eq to Peak Listeners
|
||||
print "djonline_tag.draw AREA\n";
|
||||
print "djonline_tag.colour e5ff60\n";
|
||||
print "djonline_tag.min 0\n";
|
||||
print "djonline_tag.label DJ-Online Tag\n";
|
||||
print "djonline_tag.type GAUGE\n";
|
||||
|
||||
# Max Listeners Connected to Server
|
||||
print "all_connections.draw LINE1\n";
|
||||
print "all_connections.colour a00e95\n";
|
||||
print "all_connections.min 0\n";
|
||||
print "all_connections.label Listeners\n";
|
||||
print "all_connections.type GAUGE\n";
|
||||
|
||||
# Max Unique Listeners Connected to Server
|
||||
print "unique_connections.draw LINE1\n";
|
||||
print "unique_connections.colour 330099\n";
|
||||
print "unique_connections.min 0\n";
|
||||
print "unique_connections.label Unique Listeners\n";
|
||||
print "unique_connections.type GAUGE\n";
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
#my $ua = LWP::UserAgent->new(timeout => 30);
|
||||
#my $response = $ua->request(HTTP::Request->new('GET',$URL));
|
||||
|
||||
my $ua = LWP::UserAgent->new(timeout => 30);
|
||||
$ua->agent('XML Getter (Mozilla Compatible)');
|
||||
|
||||
my $request = HTTP::Request->new( 'GET' => $URL );
|
||||
$request->protocol('HTTP/1.0');
|
||||
|
||||
my $response = $ua->request($request);
|
||||
|
||||
#<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>89,1,453,800,87,128,Kitadani Hiroshi - Bushi</body>
|
||||
#print $response->content . "\n\n";
|
||||
|
||||
if ( $response->content =~ /<HTML><meta http-equiv="Pragma" content="no-cache"><\/head><body>(\d+),(\d+),(\d+),(\d+),(\d+),(\d+),(.*)<\/body>/s ) {
|
||||
|
||||
my $djonline = ( $7 =~ m/Dj-Online/i ) ? $3 : '0';
|
||||
|
||||
print "max_connections.value $4\n";
|
||||
print "ax_used_connections.value $3\n";
|
||||
print "djonline_tag.value $djonline\n";
|
||||
print "all_connections.value $1\n";
|
||||
print "unique_connections.value $5\n";
|
||||
} else {
|
||||
print "\n";
|
||||
}
|
Loading…
Reference in New Issue
Block a user