Repository
Munin (contrib)
Last change
2020-10-24
Graph Categories
Family
manual
Capabilities
Keywords
Language
Shell
License
curl
Authors

loolwsd

Name

loolwsd - Monitor usage (open documents and active views) and memory usage of libreoffice online

Applicable Systems

LibreOffice Online or Collabora Online or Collabora Online Development Edition

Configuration

Requires installed curl.

Set username, password of admin user and if required an url in your munin-node configuration. Default url is http://127.0.0.1:9980/lool/getMetrics

[loolwsd]
env.username <lool_admin>
env.password <lool_password>
env.url <lool_getmetrics_url>

You can set an administative user for loolwsd by invoking

loolconfig set-admin-password

Author

Copyright (C) 2020 Sebastian L. (https://momou.ch)

License

GPLv2

Magic Markers

#%# family=manual
#%# capabilities=autoconf
#!/bin/sh

set -e

: << =cut

=head1 NAME

loolwsd - Monitor usage (open documents and active views) and memory
usage of libreoffice online

=head1 APPLICABLE SYSTEMS

LibreOffice Online or Collabora Online or Collabora Online Development 
Edition

=head1 CONFIGURATION

Requires installed curl.

Set username, password of admin user and if required an url in your 
munin-node configuration. Default url is 
http://127.0.0.1:9980/lool/getMetrics

 [loolwsd]
 env.username <lool_admin>
 env.password <lool_password>
 env.url <lool_getmetrics_url>

You can set an administative user for loolwsd by invoking

loolconfig set-admin-password

=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:9980/lool/getMetrics"}
USERNAME="${username:-}"
PASSWORD="${password:-}"

case $1 in
    autoconf)
        if [ -x /usr/bin/loolwsd ]; then
		if [ -x /usr/bin/curl ]; then
			curl -s -f -m 2 -I -u "$USERNAME:$PASSWORD" "$STATS_URL" | grep -iq "Content-Type: text/plain" && echo "yes" && exit 0 || echo "no (invalid or empty response from loolwsd ($STATS_URL)" && exit 0
		else
			echo "no (/usr/bin/curl not found)" && exit 0
		fi
        else
		echo "no (/usr/bin/loolwsd not found)"
		exit 0
        fi
        ;;

   config)
	echo "multigraph loolwsd_usage"
	echo "graph_title Libreoffice Online Usage"
	echo "graph_category appserver"
	echo "graph_vlabel open documents / active views"
	echo "graph_info This graph shows currently open documents and active views."
	echo "graph_args --base 1000 --lower-limit 0"
	echo "documents.label open documents"
	echo "documents.info Current number of open documents"
	echo "documents.min 0"
	echo "active_views.label active views"
	echo "active_views.info Current number of active views"
	echo "active_views.min 0"
	echo "multigraph loolwsd_memory"
	echo "graph_title Libreoffice Online Memory Usage"
	echo "graph_category appserver"
	echo "graph_vlabel memory usage of libreoffice online"
	echo "graph_info This graph shows currently used memory of libreoffice online."
	echo "graph_args --base 1000 --lower-limit 0"
	echo "memory.label used memory"
	echo "memory.info Currently used memory of libreoffice online"
	echo "memory.min 0"
	exit 0
        ;;

esac

STATS=$(curl -s -f -u "$USERNAME:$PASSWORD" "$STATS_URL")
echo "multigraph loolwsd_usage"
echo "documents.value $(echo "$STATS" | grep kit_assigned_count | cut -d " " -f 2)"
echo "active_views.value $(echo "$STATS" | grep document_active_views_active_count_total | cut -d " " -f 2)"
echo "multigraph loolwsd_memory"
echo "memory.value $(echo "$STATS" | grep global_memory_used_bytes | cut -d " " -f 2)"