def get_bk_data(self, data, cc_app_id): _data = apigw_data.get_docker_metrics(data['metric'], cc_app_id, data['res_id'], data['start_at'], data['end_at']) metrics_data = [] if data['metric'] == 'disk': metric_list = groupby(sorted(_data['list'], key=lambda x: x['device_name']), key=lambda x: x['device_name']) for device_name, metrics in metric_list: metrics_data.append({ 'device_name': device_name, 'metrics': [{ 'used_pct': normalize_metric(i['used_pct']), 'time': i['time'] } for i in metrics] }) _data['list'] = metrics_data elif data['metric'] == 'cpu_summary': for i in _data['list']: i['usage'] = normalize_metric(i.get('cpu_totalusage')) i.pop('cpu_totalusage', None) elif data['metric'] == 'mem': for i in _data['list']: i['rss_pct'] = normalize_metric(i['rss_pct']) elif data['metric'] == 'net': for i in _data['list']: i['rxpackets'] = int(i['rxpackets']) i['txbytes'] = int(i['txbytes']) i['rxbytes'] = int(i['rxbytes']) i['txpackets'] = int(i['txpackets']) return _data
def get_multi_bk_data(self, data, cc_app_id): _data = apigw_data.get_docker_metrics( data['metric'], cc_app_id, data['res_id_list'], data['start_at'], data['end_at'] ) metrics_data = [] if data['metric'] == 'cpu_summary': metric_list = groupby(sorted(_data['list'], key=lambda x: x['id']), key=lambda x: x['id']) for _id, metrics in metric_list: container_name = '' _metrics = [] for i in metrics: container_name = i['container_name'] _metrics.append( { 'usage': normalize_metric(i.get('cpu_totalusage')), 'time': i['time'], } ) metrics_data.append({'id': _id, 'container_name': container_name, 'metrics': _metrics}) _data['list'] = metrics_data elif data['metric'] == 'mem': metric_list = groupby(sorted(_data['list'], key=lambda x: x['id']), key=lambda x: x['id']) for _id, metrics in metric_list: container_name = '' _metrics = [] for i in metrics: container_name = i['container_name'] _metrics.append({'rss_pct': normalize_metric(i['rss_pct']), 'time': i['time']}) metrics_data.append({'id': _id, 'container_name': container_name, 'metrics': _metrics}) _data['list'] = metrics_data return _data