def check(auth_ref, args): ironic_endpoint = ('{protocol}://{ip}:{port}/v1'.format( ip=args.ip, protocol=args.protocol, port=args.port)) try: if args.ip: ironic = get_ironic_client(endpoint=ironic_endpoint) else: ironic = get_ironic_client() is_up = True except exc.ClientException: is_up = False # Any other exception presumably isn't an API error except Exception as e: metric_bool('client_success', False, m_name='maas_ironic') status_err(str(e), m_name='maas_ironic') return else: metric_bool('client_success', True, m_name='maas_ironic') # pass limit=0 to list all nodes list without pagination all_nodes = ironic.node.list(limit=0) status_ok(m_name='maas_ironic') if is_up: maint_nodes = [node for node in all_nodes if node.maintenance] maint_nodes_count = len(maint_nodes) total_nodes = len(all_nodes) up_nodes = total_nodes - maint_nodes_count metric('ironic_up_nodes_count', 'uint32', up_nodes) metric('ironic_total_nodes_count', 'uint32', total_nodes)
def check(auth_ref, args): IRONIC_ENDPOINT = ('http://{ip}:6385/v1'.format(ip=args.ip)) try: if args.ip: ironic = get_ironic_client(endpoint=IRONIC_ENDPOINT) else: ironic = get_ironic_client() is_up = True except exc.ClientException: is_up = False # Any other exception presumably isn't an API error except Exception as e: metric_bool('client_success', False, m_name='maas_ironic') status_err(str(e), m_name='maas_ironic') else: metric_bool('client_success', True, m_name='maas_ironic') # time something arbitrary start = time.time() ironic.node.list() end = time.time() milliseconds = (end - start) * 1000 status_ok(m_name='maas_ironic') metric_bool('ironic_api_local_status', is_up, m_name='maas_ironic') if is_up: # only want to send other metrics if api is up metric('ironic_api_local_response_time', 'double', '%.3f' % milliseconds, 'ms')
def check(auth_ref, args): ironic_endpoint = ('{protocol}://{ip}:{port}/v1'.format( ip=args.ip, protocol=args.protocol, port=args.port)) try: if args.ip: ironic = get_ironic_client(endpoint=ironic_endpoint) else: ironic = get_ironic_client() is_up = True except exc.ClientException: is_up = False # Any other exception presumably isn't an API error except Exception as e: metric_bool('client_success', False, m_name='maas_ironic') status_err(str(e), m_name='maas_ironic') else: metric_bool('client_success', True, m_name='maas_ironic') # time something arbitrary start = time.time() ironic.node.list() end = time.time() milliseconds = (end - start) * 1000 status_ok(m_name='maas_ironic') metric_bool('ironic_api_local_status', is_up, m_name='maas_ironic') if is_up: # only want to send other metrics if api is up metric('ironic_api_local_response_time', 'double', '%.3f' % milliseconds, 'ms')
def check(auth_ref, args): ironic_endpoint = ('{protocol}://{ip}:{port}/v1'.format( ip=args.ip, protocol=args.protocol, port=args.port )) try: if args.ip: ironic = get_ironic_client(endpoint=ironic_endpoint) else: ironic = get_ironic_client() is_up = True except exc.ClientException: is_up = False # Any other exception presumably isn't an API error except Exception as e: metric_bool('client_success', False, m_name='maas_ironic') status_err(str(e), m_name='maas_ironic') return else: metric_bool('client_success', True, m_name='maas_ironic') # pass limit=0 to list all nodes list without pagination all_nodes = ironic.node.list(limit=0) status_ok(m_name='maas_ironic') if is_up: maint_nodes = [node for node in all_nodes if node.maintenance] maint_nodes_count = len(maint_nodes) total_nodes = len(all_nodes) up_nodes = total_nodes - maint_nodes_count metric('ironic_up_nodes_count', 'uint32', up_nodes) metric('ironic_total_nodes_count', 'uint32', total_nodes)