mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
ehterpadlite_: Monitor number of pads
This commit is contained in:
parent
a8c2b8afe1
commit
4259869d44
1 changed files with 96 additions and 0 deletions
96
plugins/etherpadlite/etherpadlite_
Executable file
96
plugins/etherpadlite/etherpadlite_
Executable file
|
@ -0,0 +1,96 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
: << =cut
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
etherpadlite_ - Monitor number of pads with etherpad-lite plugin called
|
||||||
|
ep_pads_stats
|
||||||
|
|
||||||
|
=head1 APPLICABLE SYSTEMS
|
||||||
|
|
||||||
|
Etherpad-Lite instances
|
||||||
|
|
||||||
|
=head1 CONFIGURATION
|
||||||
|
|
||||||
|
Requires installed ep_pads_stats
|
||||||
|
(https://www.npmjs.com/package/ep_pads_stats) plugin and an installed
|
||||||
|
jq, a command-line json processor.
|
||||||
|
|
||||||
|
This is a wildcard plugin. To monitor a etherpad-lite instance, link
|
||||||
|
etherpadlite_<instancename> to this file.
|
||||||
|
|
||||||
|
[etherpadlite_instancename]
|
||||||
|
env.url http://127.0.0.1:9001/stats.json
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
Copyright (C) 2020 Sebastian L. (https://momou.ch)
|
||||||
|
|
||||||
|
=head1 LICENSE
|
||||||
|
|
||||||
|
GPLv2
|
||||||
|
|
||||||
|
=head1 MAGIC MARKERS
|
||||||
|
|
||||||
|
#%# family=manual
|
||||||
|
#%# capabilities=autoconf
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
||||||
|
|
||||||
|
STATS_URL=${url:-"http://127.0.0.1:9001/stats.json"}
|
||||||
|
INSTANCENAME="${0##*etherpadlite_}"
|
||||||
|
CLEANINSTANCE="$(clean_fieldname "$INSTANCENAME")"
|
||||||
|
|
||||||
|
print_json_data() {
|
||||||
|
local FIRST="$1"
|
||||||
|
[ -z "$FIRST" ] && exit 0
|
||||||
|
shift 1
|
||||||
|
for KEY in "$@"; do
|
||||||
|
VALUE=$(echo "$FIRST" | jq -cr ".$KEY")
|
||||||
|
echo "${KEY}.value $VALUE"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
|
||||||
|
autoconf)
|
||||||
|
if [ -x /usr/bin/curl ]; then
|
||||||
|
if [ -x /usr/bin/jq ]; then
|
||||||
|
curl -s -f -m 2 -I "$STATS_URL" | grep -iq "Content-Type: application/json" && echo "yes" && exit 0 || echo "no (invalid or empty response from ep_pad_stats plugin ($STATS_URL))" && exit 0
|
||||||
|
else
|
||||||
|
echo "no (jq not found)" && exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "no (/usr/bin/curl not found)" && exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
config)
|
||||||
|
|
||||||
|
cat << EOM
|
||||||
|
multigraph etherpadlite_$CLEANINSTANCE
|
||||||
|
graph_title Etherlite-Pads on $CLEANINSTANCE instance
|
||||||
|
graph_args --base 1000 -l 0
|
||||||
|
graph_printf %.0lf
|
||||||
|
graph_vlabel available pads
|
||||||
|
graph_info number of available pads
|
||||||
|
padsCount.label active pads
|
||||||
|
padsCount.info number of active pads
|
||||||
|
padsCount.min 0
|
||||||
|
blankPads.label blank pads
|
||||||
|
blankPads.info number of blank pads
|
||||||
|
blankPads.min 0
|
||||||
|
EOM
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
JSONSTATS=$(curl -s -f -m 2 "$STATS_URL")
|
||||||
|
echo "multigraph etherpadlite_$CLEANINSTANCE"
|
||||||
|
print_json_data "$JSONSTATS" padsCount blankPads
|
Loading…
Add table
Add a link
Reference in a new issue