コード例 #1
0
ファイル: metrics.py プロジェクト: penglongli/bk-bcs
    def get_bk_data(self, res_id, cc_app_id):
        """数据平台"""
        cpu_metrics = apigw_data.get_node_metrics('cpu_summary',
                                                  cc_app_id,
                                                  res_id,
                                                  limit=1)
        if cpu_metrics['list']:
            cpu_metrics = normalize_metric(cpu_metrics['list'][0]['usage'])
        else:
            cpu_metrics = 0

        mem_metrics = apigw_data.get_node_metrics('mem',
                                                  cc_app_id,
                                                  res_id,
                                                  limit=1)
        if mem_metrics['list']:
            mem_metrics = normalize_metric(mem_metrics['list'][0]['used'] *
                                           100.0 /
                                           mem_metrics['list'][0]['total'])
        else:
            mem_metrics = 0

        # device_name 有很多,需要处理
        io_metrics = apigw_data.get_node_metrics('io',
                                                 cc_app_id,
                                                 res_id,
                                                 limit=1)

        if io_metrics['list']:
            io_metrics = normalize_metric(io_metrics['list'][0]['util'])
        else:
            io_metrics = 0

        data = {'cpu': cpu_metrics, 'mem': mem_metrics, 'io': io_metrics}
        return data
コード例 #2
0
ファイル: metrics.py プロジェクト: sdgdsffdsfff/bk-bcs-saas
    def get_bk_data(self, data, cc_app_id):
        """数据平台返回
        """
        _data = apigw_data.get_node_metrics(
            data['metric'], cc_app_id, data['res_id'], data['start_at'], data['end_at'])

        metrics_data = []
        if data['metric'] == 'io':
            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': [{'rkb_s': normalize_metric(i['rkb_s']),
                                                  'wkb_s': normalize_metric(i['wkb_s']),
                                                  '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['usage'])
        elif data['metric'] == 'net':
            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': [{'speedSent': i['speedSent'],
                                                  'speedRecv': i['speedRecv'],
                                                  'time': i['time']} for i in metrics]})
            _data['list'] = metrics_data
        return _data