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
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
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
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
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
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