#!/usr/bin/env python # # Plugin to monitor instances launched from beginning of time # # To monitor a floating ips, link floating_ips to this file. # E.g. # ln -s /usr/share/munin/plugins/nova_instance_launched /etc/munin/plugins/ # # Needs following minimal configuration in plugin-conf.d/nova: # [nova_*] # user nova # # Magic markers #%# capabilities=autoconf #%# family=auto import sys try: from nova import context from nova import db from nova import flags from nova import utils from nova.db.sqlalchemy.session import get_session except ImportError: successful_import = False else: successful_import = True def print_config(): global states print 'graph_title Nova Instances Launched' print 'graph_vlabel qty' print 'graph_args --base 1000 --lower-limit 0' print 'graph_category cloud' print 'graph_scale no' print 'graph_info This graph shows the number of instances launched since the beginning of time' print 'instances.label instances' print 'instances.draw LINE2' def get_status(): connection = get_session().connection() row = connection.execute("select count(*) from instances").fetchall()[0] return row[0] def print_values(): qty = get_status() print "instances.value %s" % qty if __name__ == '__main__': if len(sys.argv) > 1: if sys.argv[1] == "config": print_config() elif sys.argv[1]=="autoconf" : if not successful_import: print 'no (failed import nova module)' sys.exit(0) else: print 'yes' elif successful_import: utils.default_flagfile() flags.FLAGS(sys.argv) print_values()