munin-contrib/plugins/glassfish/glassfish_counters_

97 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# -*- sh -*-
: << =cut
=head1 NAME
glassfish_counters_ - Wildcard-plugin to monitor counters in GlassFish
=head1 CONFIGURATION
This plugin does need the full path to the asadmin script:
[glassfish_counters_*]
env.ASADMIN /usr/local/glassfish/bin/asadmin
This is a wildcard plugin. To monitor an subtree, link
glassfish_counters_<subtree> to this file. E.g.
ln -s /usr/share/munin/plugins/glassfish_counters_ \
/etc/munin/plugins/glassfish_counters_server.web.request
...will monitor server.web.request.*
To ignore certain counters, just add more "IGNORE" lines on top of
the awk script. (XXX: Fixme for env.)
=head1 AUTHOR
Philipp Buehler
=head1 LICENSE
BSD 2-clause
=head1 VERSION
$Id: glassfish_counters_.in$
0.0.1
=cut
[ -z $ASADMIN ] && {
echo "ASADMIN not set in node configuration"
exit 1
} || MUN_AS_ADMIN=${ASADMIN}
check_link () {
scriptname=${0##*/}
myself=${scriptname##*_}
if [ "x$myself" = "x" ] ; then
echo "plugin must be symlinked, e.g. to glassfish_counters_server.web.request"
exit 1
fi
}
SUBTREE=${0##*glassfish_counters_}
case $1 in
suggest)
echo "not implemented"
exit 0
;;
config)
check_link
$MUN_AS_ADMIN get -t --monitor=true "${SUBTREE}.*" | \
awk 'BEGIN{ FS="[ = ]"}
/requestcount/ { next; } # IGNORE
/dotted-name/ { myself = $NF
print "graph_title GlassFish", myself
print "graph_vlabel count"
print "graph_category appserver"
print "graph_info this shows available counters from", myself
next
}
/-name / { nwhat = split($1, what, ".")
gsub(/-name/, "", what[nwhat])
print what[nwhat] ".label " $NF
print what[nwhat] ".type GAUGE"
}
/-description / { nwhat = split($1, what, ".")
gsub(/-description/, "", what[nwhat])
$1 = ""; line = $0
gsub(/^ /,"", line)
print what[nwhat] ".info " line
}
'
exit 0
;;
esac
check_link
$MUN_AS_ADMIN get -t --monitor=true "${SUBTREE}.*" | \
awk 'BEGIN{ FS="[ = ]" }
/requestcount/ { next;} # IGNORE
/-count / { nwhat = split($1, what, ".")
gsub(/-count/, "", what[nwhat])
print what[nwhat] ".value " $NF}
'