From 238aaf5d2179c10afc23afb7ad7458c5e98772e9 Mon Sep 17 00:00:00 2001 From: ToM Date: Tue, 6 Nov 2012 12:37:30 +0100 Subject: [PATCH] New plugin: mpdstats_. --- plugins/mpd/mpdstats_ | 134 +++++++++++++++++++++++++++++ plugins/mpd/mpdstats_songs-day.png | Bin 0 -> 9389 bytes 2 files changed, 134 insertions(+) create mode 100755 plugins/mpd/mpdstats_ create mode 100644 plugins/mpd/mpdstats_songs-day.png diff --git a/plugins/mpd/mpdstats_ b/plugins/mpd/mpdstats_ new file mode 100755 index 00000000..ea2117dc --- /dev/null +++ b/plugins/mpd/mpdstats_ @@ -0,0 +1,134 @@ +#!/bin/sh + +# vim: set ft=sh : +# -*- sh -*- + +: << =cut + +=head1 NAME + +mpdstats_ - Munin plugin to monitor a MPD database + +=head1 DEPENDENCIES + +This plugin uses netcat(1) to communicate with the MPD daemon. + +Tip: To see if it is already set up correctly, just run this plugin +with the parameter "autoconf". If you get a "yes", everything should +work like a charm already. + +=head1 INSTALLATION + +This wildcard plugin should be symlinked using one of these names: +mpdstats_artists, mpdstats_albums, mpdstats_songs + +=head1 CONFIGURATION + +No configuration should be required if run on the same server as +MPD. If the plugin is run from remote or in a non-default configuration, +please use the environment variables 'mpd_host' and 'mpd_port' to connect. + +Also, if your netcat(1) binary is anywhere else than /bin/nc please define +it using the 'netcat' environment variable. + +=head2 CONFIGURATION EXAMPLE + + [mpd_*] + env.mpd_host 192.168.0.43 + env.mpd_port 6606 + env.netcat /usr/local/bin/nc + +=head1 AUTHOR + +Copyright (C) 2012 ToM + +=head1 LICENSE + +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; version 2 dated June, +1991. + +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, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +=head1 MAGIC MARKERS + + #%# family=auto + #%# capabilities=autoconf suggest + +=cut + + + +MPDHOST=${mpd_host:-localhost} +MPDPORT=${mpd_port:-6600} +NCBIN=${netcat:-/bin/nc} + +# +# FUNCTIONS +# + +do_autoconf () { + case "$ACTION" in + albums|artists|songs) + ;; + *) + echo "no (not a valid symlink name, please read the plugin doc)" + exit 1 + ;; + esac + + if [ ! -x $NCBIN ] ; then + echo "no ($NCBIN: not found or not executable)" + exit 1 + fi + + echo version | $NCBIN -q 2 $MPDHOST $MPDPORT 1>/dev/null 2>&1 + if [ "$?" != 0 ] ; then + echo "no (connection failed)" + exit 1 + fi + + echo "yes" + exit 0 +} + +# +# MAIN +# + +SCRIPTNAME=${0##*/} +ACTION=${SCRIPTNAME##*_} + +case "$1" in + autoconf) + do_autoconf + ;; + suggest) + echo "$ACTION" + exit 0 + ;; + config) + echo "graph_category MPD +graph_title $ACTION in the database +graph_info Number of $ACTION in the database. +graph_vlabel $ACTION in the db +graph_args --base 1000 -l 0 +graph_scale no +$ACTION.type GAUGE +$ACTION.draw LINE2 +$ACTION.label $ACTION" + exit 0 + ;; + *) + printf "$ACTION.value " + echo stats | $NCBIN -q 2 $MPDHOST $MPDPORT | awk " /^${ACTION}/ {print \$2}" + ;; +esac diff --git a/plugins/mpd/mpdstats_songs-day.png b/plugins/mpd/mpdstats_songs-day.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc4fa949133ee44e9b3aeaddf48bc41ce26fa02 GIT binary patch literal 9389 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