From 72acc570e66c580f08b717579a4d4879d319ff25 Mon Sep 17 00:00:00 2001 From: nico Date: Thu, 6 Sep 2018 17:28:49 +0200 Subject: plugin description mprovements + added munin specific header with magic markers added + added value info to all values + added autoconf capability * sessions are now closed after use * moved allocation of url, username and password into plugin class --- nextcloud_users | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'nextcloud_users') diff --git a/nextcloud_users b/nextcloud_users index e311a12..445a6db 100644 --- a/nextcloud_users +++ b/nextcloud_users @@ -1,25 +1,49 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +# +# Plugin to monitor the amount of users sucessfully logging in to the specified nextcloud instance +# +# Parameters understood: +# config (required) +# autoconf (optional - used by munin-config) +# +# Magic markers - optional - used by installation scripts and +# munin-config: +# +# #%# family=manual +# #%# capabilities=autoconf import requests import sys import os -URL = os.environ['url'] -auth = (os.environ['username'], os.environ['password']) - class NextcloudUsers: if (sys.argv.__len__() == 2) and (sys.argv[1] == "config"): print('graph_title Nextcloud User Activity') print('graph_args --base 1024 -l 0') + print('graph_printf %.0lf') print('graph_vlabel connected users') print('graph_info graph showing the number of connected user') print('graph_category nextcloud') print('last5minutes.label last 5 minutes') + print('last5minutes.info users connected in the last 5 minutes') print('last1hour.label last hour') + print('last1hour.info users connected in the last hour') print('last24hours.label last 24 hours') + print('last24.hours.info users connected in the last 24 hours') + elif (sys.argv.__len__() == 2) and (sys.argv[1] == 'autoconf'): + # check host if env variables are set + try: + if None not in {os.environ['url'], os.environ['username'], os.environ['password']}: + print('yes') + except KeyError as e: + print('no configuration options are missing: %s' % e) else: + # read the configuration from munin environment + URL = os.environ['url'] + auth = (os.environ['username'], os.environ['password']) + # init requests session with specific header and credentials s = requests.Session() s.auth = auth @@ -28,8 +52,9 @@ class NextcloudUsers: # request data from api r = s.get(URL) - # if status code is successful continue + # if status code is successful close connection and continue if r.status_code == 200: + s.close() api_response = r.json() users = api_response['ocs']['data']['activeUsers'] -- cgit v1.2.3-54-g00ecf