コード例 #1
0
    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
コード例 #2
0
    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