Exemplo n.º 1
0
def build_stats_message():
    global SEQ
    msg = {'id': CONF.amphora_agent.amphora_id,
           'seq': SEQ, "listeners": {},
           'ver': MSG_VER}
    SEQ += 1
    stat_sock_files = list_sock_stat_files()
    for listener_id, stat_sock_file in stat_sock_files.items():
        listener_dict = {'pools': {},
                         'status': 'DOWN',
                         'stats': {
                             'tx': 0,
                             'rx': 0,
                             'conns': 0,
                             'totconns': 0,
                             'ereq': 0}}
        msg['listeners'][listener_id] = listener_dict
        if util.is_listener_running(listener_id):
            (stats, pool_status) = get_stats(stat_sock_file)
            listener_dict = msg['listeners'][listener_id]
            for row in stats:
                if row['svname'] == 'FRONTEND':
                    listener_dict['stats']['tx'] = int(row['bout'])
                    listener_dict['stats']['rx'] = int(row['bin'])
                    listener_dict['stats']['conns'] = int(row['scur'])
                    listener_dict['stats']['totconns'] = int(row['stot'])
                    listener_dict['stats']['ereq'] = int(row['ereq'])
                    listener_dict['status'] = row['status']
            for oid, pool in pool_status.items():
                if oid != listener_id:
                    pool_id = oid
                    pools = listener_dict['pools']
                    pools[pool_id] = {"status": pool['status'],
                                      "members": pool['members']}

    # UDP listener part
    udp_listener_ids = util.get_udp_listeners()
    if udp_listener_ids:
        listeners_stats = keepalivedlvs_query.get_udp_listeners_stats()
        if listeners_stats:
            for listener_id, listener_stats in listeners_stats.items():
                pool_status = keepalivedlvs_query.get_udp_listener_pool_status(
                    listener_id)
                udp_listener_dict = dict()
                udp_listener_dict['status'] = listener_stats['status']
                udp_listener_dict['stats'] = {
                    'tx': listener_stats['stats']['bout'],
                    'rx': listener_stats['stats']['bin'],
                    'conns': listener_stats['stats']['scur'],
                    'totconns': listener_stats['stats']['stot'],
                    'ereq': listener_stats['stats']['ereq']
                }
                udp_listener_dict['pools'] = {}
                if pool_status:
                    udp_listener_dict['pools'] = {
                        pool_status['lvs']['uuid']: {
                            "status": pool_status['lvs']['status'],
                            "members": pool_status['lvs']['members']}}
                msg['listeners'][listener_id] = udp_listener_dict
    return msg
Exemplo n.º 2
0
def _count_haproxy_processes(listener_list):
    num = 0
    for listener_id in listener_list:
        if util.is_listener_running(listener_id):
            # optional check if it's still running
            num += 1
    return num
Exemplo n.º 3
0
def _count_haproxy_processes(listener_list):
    num = 0
    for listener_id in listener_list:
        if util.is_listener_running(listener_id):
            # optional check if it's still running
            num += 1
    return num
Exemplo n.º 4
0
def build_stats_message():
    global SEQ
    msg = {'id': CONF.amphora_agent.amphora_id,
           'seq': SEQ, "listeners": {}}
    SEQ += 1
    stat_sock_files = list_sock_stat_files()
    for listener_id, stat_sock_file in six.iteritems(stat_sock_files):
        listener_dict = {'pools': {},
                         'status': 'DOWN',
                         'stats': {
                             'tx': 0,
                             'rx': 0,
                             'conns': 0,
                             'totconns': 0,
                             'ereq': 0}}
        msg['listeners'][listener_id] = listener_dict
        if util.is_listener_running(listener_id):
            (stats, pool_status) = get_stats(stat_sock_file)
            listener_dict = msg['listeners'][listener_id]
            for row in stats:
                if row['svname'] == 'FRONTEND':
                    listener_dict['stats']['tx'] = int(row['bout'])
                    listener_dict['stats']['rx'] = int(row['bin'])
                    listener_dict['stats']['conns'] = int(row['scur'])
                    listener_dict['stats']['totconns'] = int(row['stot'])
                    listener_dict['stats']['ereq'] = int(row['ereq'])
                    listener_dict['status'] = row['status']
            for oid, pool in six.iteritems(pool_status):
                if oid != listener_id:
                    pool_id = oid
                    pools = listener_dict['pools']
                    pools[pool_id] = {"status": pool['status'],
                                      "members": pool['members']}
    return msg
Exemplo n.º 5
0
def build_stats_message():
    global SEQ
    msg = {'id': CONF.amphora_agent.amphora_id, 'seq': SEQ, "listeners": {}}
    SEQ += 1
    stat_sock_files = list_sock_stat_files()
    for listener_id, stat_sock_file in stat_sock_files.items():
        listener_dict = {
            'pools': {},
            'status': 'DOWN',
            'stats': {
                'tx': 0,
                'rx': 0,
                'conns': 0,
                'totconns': 0,
                'ereq': 0
            }
        }
        msg['listeners'][listener_id] = listener_dict
        if util.is_listener_running(listener_id):
            (stats, pool_status) = get_stats(stat_sock_file)
            listener_dict = msg['listeners'][listener_id]
            for row in stats:
                if row['svname'] == 'FRONTEND':
                    listener_dict['stats']['tx'] = int(row['bout'])
                    listener_dict['stats']['rx'] = int(row['bin'])
                    listener_dict['stats']['conns'] = int(row['scur'])
                    listener_dict['stats']['totconns'] = int(row['stot'])
                    listener_dict['stats']['ereq'] = int(row['ereq'])
                    listener_dict['status'] = row['status']
            for oid, pool in pool_status.items():
                if oid != listener_id:
                    pool_id = oid
                    pools = listener_dict['pools']
                    pools[pool_id] = {
                        "status": pool['status'],
                        "members": pool['members']
                    }
    return msg
Exemplo n.º 6
0
def build_stats_message():
    global SEQ
    msg = {"id": CONF.amphora_agent.amphora_id, "seq": SEQ, "listeners": {}}
    SEQ += 1
    stat_sock_files = list_sock_stat_files()
    for listener_id, stat_sock_file in six.iteritems(stat_sock_files):
        listener_dict = {"pools": {}, "status": "DOWN", "stats": {"tx": 0, "rx": 0, "conns": 0, "totconns": 0}}
        msg["listeners"][listener_id] = listener_dict
        if util.is_listener_running(listener_id):
            (stats, pool_status) = get_stats(stat_sock_file)
            listener_dict = msg["listeners"][listener_id]
            for row in stats:
                if row["svname"] == "FRONTEND":
                    listener_dict["stats"]["tx"] = int(row["bout"])
                    listener_dict["stats"]["rx"] = int(row["bin"])
                    listener_dict["stats"]["conns"] = int(row["scur"])
                    listener_dict["stats"]["totconns"] = int(row["stot"])
                    listener_dict["status"] = row["status"]
            for oid, pool in six.iteritems(pool_status):
                if oid != listener_id:
                    pool_id = oid
                    pools = listener_dict["pools"]
                    pools[pool_id] = {"status": pool["status"], "members": pool["members"]}
    return msg
Exemplo n.º 7
0
def build_stats_message():
    global SEQ
    msg = {'id': CONF.amphora_agent.amphora_id, 'seq': SEQ, "listeners": {}}
    SEQ += 1
    stat_sock_files = list_sock_stat_files()
    for listener_id, stat_sock_file in stat_sock_files.items():
        listener_dict = {
            'pools': {},
            'status': 'DOWN',
            'stats': {
                'tx': 0,
                'rx': 0,
                'conns': 0,
                'totconns': 0,
                'ereq': 0
            }
        }
        msg['listeners'][listener_id] = listener_dict
        if util.is_listener_running(listener_id):
            (stats, pool_status) = get_stats(stat_sock_file)
            listener_dict = msg['listeners'][listener_id]
            for row in stats:
                if row['svname'] == 'FRONTEND':
                    listener_dict['stats']['tx'] = int(row['bout'])
                    listener_dict['stats']['rx'] = int(row['bin'])
                    listener_dict['stats']['conns'] = int(row['scur'])
                    listener_dict['stats']['totconns'] = int(row['stot'])
                    listener_dict['stats']['ereq'] = int(row['ereq'])
                    listener_dict['status'] = row['status']
            for oid, pool in pool_status.items():
                if oid != listener_id:
                    pool_id = oid
                    pools = listener_dict['pools']
                    pools[pool_id] = {
                        "status": pool['status'],
                        "members": pool['members']
                    }

    # UDP listener part
    udp_listener_ids = util.get_udp_listeners()
    if udp_listener_ids:
        listeners_stats = keepalivedlvs_query.get_udp_listeners_stats()
        if listeners_stats:
            for listener_id, listener_stats in listeners_stats.items():
                pool_status = keepalivedlvs_query.get_udp_listener_pool_status(
                    listener_id)
                udp_listener_dict = dict()
                udp_listener_dict['status'] = listener_stats['status']
                udp_listener_dict['stats'] = {
                    'tx': listener_stats['stats']['bout'],
                    'rx': listener_stats['stats']['bin'],
                    'conns': listener_stats['stats']['scur'],
                    'totconns': listener_stats['stats']['stot'],
                    'ereq': listener_stats['stats']['ereq']
                }
                if pool_status:
                    udp_listener_dict['pools'] = {
                        pool_status['lvs']['uuid']: {
                            "status": pool_status['lvs']['status'],
                            "members": pool_status['lvs']['members']
                        }
                    }
                msg['listeners'][listener_id] = udp_listener_dict
    return msg