def main(args):
    scheduler = Scheduler()
    libv_meta = LibvirtMetadata()
    try:
        libv_meta.load_libvirt_metadata()
    except Exception:
        pass

    cc = CustomCollector('Libvirt instance stats',
                         helper_name='libvirt',
                         libv_meta=libv_meta)
    REGISTRY.register(cc)
    start_http_server(args.port, addr=args.addr)
    scheduler.log('Exposing metrics at: http://{}:{}/metrics'.format(
        args.addr, args.port))

    # Every 'wait_time' seconds
    scheduler.add_periodic_task(prom_stats,
                                'second',
                                round=args.wait_time,
                                args=(libv_meta, cc))
    # Every 20 minutes
    scheduler.add_periodic_task(libv_meta.load_libvirt_metadata,
                                'minute',
                                round=20)

    scheduler.run_concurrent(debug=args.debug)
def main(args):
    scheduler = Scheduler(max_workers=2)
    libv_meta = LibvirtMetadata()
    try:
        libv_meta.load_libvirt_metadata()
    except Exception:
        pass

    cc = CustomCollector('VirtFS instance stats',
                         helper_name='virtfs',
                         libv_meta=libv_meta)
    REGISTRY.register(cc)
    start_http_server(args.port, addr=args.addr)
    scheduler.log('Exposing metrics at: http://{}:{}/metrics'.format(
        args.addr, args.port))

    # Every day at 5am
    periodic_delay = {'hours': 2, 'minutes': randrange(120)}
    scheduler.add_periodic_task(stats_disks,
                                'day',
                                periodic_delay=periodic_delay,
                                run_now=args.run_now,
                                args=(libv_meta, cc))
    # Every 20 minutes - included in pervolume rbd request
    # scheduler.add_periodic_task(libv_meta.load_libvirt_metadata, 'minute', round=20)
    scheduler.run_concurrent(debug=args.debug)