1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00

Plugin nova_services: migrate to Python3, format documentation

This commit is contained in:
Lars Kruse 2020-11-26 01:47:30 +01:00
parent 37d81d7a6b
commit d8c3092325
2 changed files with 57 additions and 38 deletions

View file

@ -1,45 +1,67 @@
#!/usr/bin/env python #!/usr/bin/env python3
# """
# Plugin to report service status =head1 NAME
#
# Needs following minimal configuration in plugin-conf.d/nova: nova_services - report nova service status
# [nova_*]
# user nova
# =head1 CONFIGURATION
# Magic markers
#%# capabilities=autoconf Needs following minimal configuration in plugin-conf.d/nova:
#%# family=auto
[nova_*]
user nova
=head1 AUTHORS
Copyright 2012 Mehdi Abaakouk <sileht@sileht.net>
=head1 MAGIC MARKERS
#%# capabilities=autoconf
#%# family=auto
=cut
"""
import sys import sys
try: try:
from nova import context from nova import context, db, flags, utils
from nova import db
from nova import flags
from nova import utils
except ImportError: except ImportError:
successful_import = False successful_import = False
else: else:
successful_import = True successful_import = True
services = ['nova-compute', 'nova-volume', 'nova-scheduler', 'nova-vncproxy', 'nova-network', 'nova-cert', 'nova-console', 'nova-consoleauth']
services = [
'nova-compute',
'nova-volume',
'nova-scheduler',
'nova-vncproxy',
'nova-network',
'nova-cert',
'nova-console',
'nova-consoleauth',
]
def print_config(): def print_config():
global services print('graph_title Nova Services')
print 'graph_title Nova Services' print('graph_vlabel qty')
print 'graph_vlabel qty' print('graph_args --base 1000 --lower-limit 0')
print 'graph_args --base 1000 --lower-limit 0' print('graph_category cloud')
print 'graph_category cloud' print('graph_scale no')
print 'graph_scale no' print('graph_info Nova services - alive and active')
print 'graph_info Nova services - alive and active'
for service in services: for service in services:
print '%s_alive.label %s alive' % (service, service) print('%s_alive.label %s alive' % (service, service))
print '%s_alive.draw LINE2' % service print('%s_alive.draw LINE2' % service)
print '%s_alive.info seen in last 30 seconds' % service print('%s_alive.info seen in last 30 seconds' % service)
print '%s_active.label %s active' % (service, service) print('%s_active.label %s active' % (service, service))
print '%s_active.draw LINE2' % service print('%s_active.draw LINE2' % service)
print '%s_active.info alive and enabled' % service print('%s_active.info alive and enabled' % service)
def get_status(): def get_status():
@ -49,7 +71,6 @@ def get_status():
for k in services: for k in services:
alive[k] = 0 alive[k] = 0
active[k] = 0 active[k] = 0
ctxt = context.get_admin_context() ctxt = context.get_admin_context()
now = utils.utcnow() now = utils.utcnow()
services = db.service_get_all(ctxt) services = db.service_get_all(ctxt)
@ -59,16 +80,15 @@ def get_status():
alive[svc['binary']] += 1 alive[svc['binary']] += 1
if not svc['disabled']: if not svc['disabled']:
active[svc['binary']] += 1 active[svc['binary']] += 1
return {'alive': alive, 'active': active} return {'alive': alive, 'active': active}
def print_values(): def print_values():
status = get_status() status = get_status()
for (state, value) in status['alive'].iteritems(): for (state, value) in status['alive'].items():
print "%s_alive.value %s" % (state, value) print("%s_alive.value %s" % (state, value))
for (state, value) in status['active'].iteritems(): for (state, value) in status['active'].items():
print "%s_active.value %s" % (state, value) print("%s_active.value %s" % (state, value))
if __name__ == '__main__': if __name__ == '__main__':
@ -77,9 +97,9 @@ if __name__ == '__main__':
print_config() print_config()
elif sys.argv[1] == "autoconf": elif sys.argv[1] == "autoconf":
if not successful_import: if not successful_import:
print 'no (failed import nova module]' print('no (failed import nova module]')
else: else:
print 'yes' print('yes')
elif successful_import: elif successful_import:
utils.default_flagfile() utils.default_flagfile()
flags.FLAGS(sys.argv) flags.FLAGS(sys.argv)

View file

@ -272,7 +272,6 @@ plugins/nginx/nginx_vhost_traffic
plugins/nginx/nginx_working_set plugins/nginx/nginx_working_set
plugins/nova/nova_instance_launched plugins/nova/nova_instance_launched
plugins/nova/nova_instance_timing plugins/nova/nova_instance_timing
plugins/nova/nova_services
plugins/ntp/ntpdate_ plugins/ntp/ntpdate_
plugins/ntp/ntp_kernel_pll_prec plugins/ntp/ntp_kernel_pll_prec
plugins/ntp/ntp_pool_score_ plugins/ntp/ntp_pool_score_