80 lines
1.6 KiB
Bash
Executable File
80 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
: << =cut
|
|
|
|
=head1 NAME
|
|
|
|
onlyoffice - Monitor usage (editing and viewing connections) of onlyoffice
|
|
|
|
=head1 APPLICABLE SYSTEMS
|
|
|
|
OnlyOffice instances
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
Requires installed curl and jq.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Copyright (C) 2023 Sebastian L. (https://momou.ch)
|
|
|
|
=head1 LICENSE
|
|
|
|
GPLv2
|
|
|
|
=head1 MAGIC MARKERS
|
|
|
|
#%# family=auto
|
|
#%# capabilities=autoconf
|
|
|
|
=cut
|
|
|
|
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
|
|
|
INFO_URL=${url:-"http://127.0.0.1/info/info.json"}
|
|
TIMEOUT="${timeout:-2}"
|
|
|
|
fetch_url () {
|
|
curl -s -f -m "${TIMEOUT}" "$@"
|
|
}
|
|
|
|
case $1 in
|
|
autoconf)
|
|
if [ ! -x "$(command -v curl)" ]; then
|
|
echo "no (curl not found)"
|
|
elif [ ! -x "$(command -v jq)" ]; then
|
|
echo "no (jq not found)"
|
|
else
|
|
fetch_url -I "${INFO_URL}" \
|
|
| grep -iq "Content-Type: application/json" \
|
|
&& echo "yes" \
|
|
|| echo "no (invalid or empty response from onlyoffice info api)"
|
|
fi
|
|
exit 0
|
|
;;
|
|
|
|
config)
|
|
echo "multigraph onlyoffice_usage"
|
|
echo "graph_title OnlyOffice usage"
|
|
echo "graph_category appserver"
|
|
echo "graph_vlabel connections"
|
|
echo "graph_info This graph shows current editing and viewing connections."
|
|
echo "graph_args --base 1000 --lower-limit 0"
|
|
echo "edits.label editing"
|
|
echo "edits.info Current number of editing connections"
|
|
echo "edits.min 0"
|
|
echo "views.label viewing"
|
|
echo "views.info Current number of viewing connections"
|
|
echo "views.min 0"
|
|
exit 0
|
|
;;
|
|
|
|
esac
|
|
|
|
INFOS=$(fetch_url "$INFO_URL")
|
|
echo "multigraph onlyoffice_usage"
|
|
echo "edits.value $(echo "$INFOS" | jq .quota.edit.connectionsCount)"
|
|
echo "views.value $(echo "$INFOS" | jq .quota.view.connectionsCount)"
|