diff --git a/plugins/other/spotweb_average b/plugins/other/spotweb_average new file mode 100755 index 00000000..cada6a8c --- /dev/null +++ b/plugins/other/spotweb_average @@ -0,0 +1,84 @@ +#!/usr/bin/perl +# +# Munin plugin for number of spots in a MySQL database +# +# Copyright (C) 2011 - Rowdy Schwachöfer (http://rowdy.nl) +# +# Spotweb : http://github.com/spotweb/spotweb +# Original idea : smeerbartje (http://gathering.tweakers.net/forum/myreact/190949) +# slommer (http://gathering.tweakers.net/forum/myreact/353335) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# +# Configuration example +# +# [spotweb*] +# env.mysql /usr/bin/mysql # MySQL binary (optional) +# env.mysqlopts -u -p # How to connect to the database (optional if no password is set) +# env.database spotweb # Spotweb database (optional) +# +# [spotweb_average] +# env.period 1800 # The period over wich to check in seconds, default to 30 minutes (1800 seconds) +# env.watchlist yes # Show items in the watchlist (period independend) +# +# + +use strict; + +my $MYSQL = $ENV{mysql} || "/usr/bin/mysql"; +my $MYSQLOPTS = $ENV{mysqlopts} || ""; +my $DATABASE = $ENV{database} || "spotweb"; +my $PERIOD = $ENV{period} || 1800; +my $SHOW_WATCHLIST = $ENV{watchlist} || "yes"; +my $FROMSTAMP = time - $PERIOD; +my $TITLE = "Spotweb (".($PERIOD / 60)." minute average)"; + +# Output for config +if(defined $ARGV[0] && $ARGV[0] eq 'config') +{ + print < $FROMSTAMP;'`; +$spots =~ /(\d+)/; +print "spots.value ".$1."\n"; + +# Downloaded +my $downloaded = `$MYSQL $MYSQLOPTS -e 'SELECT count(*) as comments FROM $DATABASE.downloadlist WHERE stamp > $FROMSTAMP'`; +$downloaded =~ /(\d+)/; +print "downloaded.value ".$1."\n"; + +# Watchlist +if($SHOW_WATCHLIST eq 'yes') { + my $watchlist = `$MYSQL $MYSQLOPTS -e 'SELECT count(*) as watchlist FROM $DATABASE.watchlist'`; + $watchlist =~ /(\d+)/; + print "watchlist.value ".$1."\n"; +}