diff --git a/plugins/loolwsd/loolwsd b/plugins/loolwsd/loolwsd new file mode 100755 index 00000000..26ff3dd9 --- /dev/null +++ b/plugins/loolwsd/loolwsd @@ -0,0 +1,99 @@ +#!/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 +env.password +env.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_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_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)"