mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 14:16:00 +00:00
ejabberd_resources: add mnesia table info support
This commit is contained in:
parent
85072bf99d
commit
b518af0f69
1 changed files with 55 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# ejabberd_resources_ revision 3 (Nov 2013)
|
# ejabberd_resources_ revision 4 (Mar 2015)
|
||||||
#
|
#
|
||||||
# Tested with ejabberd 2.1.x
|
# Tested with ejabberd 2.1.x
|
||||||
#
|
#
|
||||||
|
@ -8,6 +8,7 @@
|
||||||
# - ejabberd memory usage (RSS, VSZ, erlang internal)
|
# - ejabberd memory usage (RSS, VSZ, erlang internal)
|
||||||
# - ejabberd ports/processes usage
|
# - ejabberd ports/processes usage
|
||||||
# - online/registered users by vhost
|
# - online/registered users by vhost
|
||||||
|
# - mnesia table sizes and location
|
||||||
#
|
#
|
||||||
# Required permissions:
|
# Required permissions:
|
||||||
# - read ejabberdctl configuration file
|
# - read ejabberdctl configuration file
|
||||||
|
@ -19,9 +20,10 @@
|
||||||
# Author: Artem Sheremet <dot.doom@gmail.com>
|
# Author: Artem Sheremet <dot.doom@gmail.com>
|
||||||
#
|
#
|
||||||
# Configuration:
|
# Configuration:
|
||||||
# - set env.ejabberdctl_cfg to ejabberdctl.cfg path if necessary
|
# - set env.ejabberdctl_cfg to ejabberdctl.cfg path if not in /etc
|
||||||
# - or set env.ERLANG_NODE, env.EJABBERD_PID_PATH to proper values manually
|
# - or set env.ERLANG_NODE, env.EJABBERD_PID_PATH to proper values manually
|
||||||
# - set erl_call_path to unregular erl_call location
|
# - set erl_call_path to unregular erl_call location
|
||||||
|
# - set env.ejabberdctl to ejabberdctl script path if not on PATH
|
||||||
|
|
||||||
#%# family=auto
|
#%# family=auto
|
||||||
#%# capabilities=autoconf suggest
|
#%# capabilities=autoconf suggest
|
||||||
|
@ -30,6 +32,8 @@ EJABBERDCTL_CFG=${ejabberdctl_cfg:-/etc/ejabberd/ejabberdctl.cfg}
|
||||||
source $EJABBERDCTL_CFG 2>/dev/null
|
source $EJABBERDCTL_CFG 2>/dev/null
|
||||||
source $MUNIN_LIBDIR/plugins/plugin.sh
|
source $MUNIN_LIBDIR/plugins/plugin.sh
|
||||||
|
|
||||||
|
EJABBERDCTL=${ejabberdctl:-$(which ejabberdctl)}
|
||||||
|
|
||||||
ERLANG_HOST=${ERLANG_NODE/*@/}
|
ERLANG_HOST=${ERLANG_NODE/*@/}
|
||||||
ERLANG_MUNIN_NODE=munin
|
ERLANG_MUNIN_NODE=munin
|
||||||
|
|
||||||
|
@ -155,6 +159,53 @@ DATA
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ejabberd_report_mnesia() {
|
||||||
|
local draw sed_re long_bits
|
||||||
|
|
||||||
|
sed_re='([a-z_]+) *: with ([0-9]+) +records occupying ([0-9]+) +([a-z]+) o[fn] ([a-z]+)'
|
||||||
|
# 1 = table_name
|
||||||
|
# 2 = records number
|
||||||
|
# 3 = bytes/words number
|
||||||
|
# 4 = unit (bytes or words)
|
||||||
|
# 5 = storage (disc or mem)
|
||||||
|
|
||||||
|
if [ "$1" = config ]; then
|
||||||
|
echo "graph_vlabel $2"
|
||||||
|
draw=LINE2
|
||||||
|
[ "$2" = bytes ] && draw=AREASTACK
|
||||||
|
|
||||||
|
$EJABBERDCTL mnesia info | sed -re 's/'"$sed_re"'/\1 \5/;tx;d;:x' |
|
||||||
|
while read table_name table_storage; do
|
||||||
|
echo "${table_name}_${table_storage}.draw $draw"
|
||||||
|
echo "${table_name}_${table_storage}.label $table_name ($table_storage)"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
if [ "$2" = recs ]; then
|
||||||
|
$EJABBERDCTL mnesia info | sed -re 's/'"$sed_re"'/\1_\5.value \2/;tx;d;:x'
|
||||||
|
else
|
||||||
|
long_bits=$(getconf LONG_BIT)
|
||||||
|
$EJABBERDCTL mnesia info |
|
||||||
|
sed -re 's/'"$sed_re"'/\1_\5.value \3 \4/;tx;d;:x' |
|
||||||
|
awk "
|
||||||
|
/ words\$/ {
|
||||||
|
print \$1, \$2 * $long_bits / 8
|
||||||
|
}
|
||||||
|
/ bytes\$/ {
|
||||||
|
print \$1, \$2
|
||||||
|
}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function ejabberd_report_mnesia_bytes() {
|
||||||
|
ejabberd_report_mnesia "$1" bytes
|
||||||
|
}
|
||||||
|
|
||||||
|
function ejabberd_report_mnesia_recs() {
|
||||||
|
ejabberd_report_mnesia "$1" recs
|
||||||
|
}
|
||||||
|
|
||||||
function open_files_counter_util() {
|
function open_files_counter_util() {
|
||||||
if hash lsof &>/dev/null; then
|
if hash lsof &>/dev/null; then
|
||||||
echo lsof
|
echo lsof
|
||||||
|
@ -232,6 +283,8 @@ processes
|
||||||
ports
|
ports
|
||||||
online_users
|
online_users
|
||||||
registered_users
|
registered_users
|
||||||
|
mnesia_recs
|
||||||
|
mnesia_bytes
|
||||||
SUGGESTIONS
|
SUGGESTIONS
|
||||||
open_files_counter_util &>/dev/null && echo open_files
|
open_files_counter_util &>/dev/null && echo open_files
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue