def parse_perfdata(cursor, callback): final_data = {} final_data['data'] = {} yield cursor.fetch_next record = cursor.next_object() if not record: callback(None) all_records = record['data'] final_data['uuid'] = record['uuid'] final_data['type'] = record['type'] #根据预先定义的颜色值,设置每个数据字段的颜色 colors = get_chart_colors() # 填充keys for key in all_records.keys(): has_disabled_filed = False for field in chart_disabled_fields: if field in key: has_disabled_filed = True break if has_disabled_filed: continue final_data['data'][key] = {} final_data['data'][key]['data'] = [] final_data['data'][key]['color'] = colors.pop() # 填充数据 for key, items in all_records.items(): has_disabled_filed = False for field in chart_disabled_fields: if field in key: has_disabled_filed = True break if has_disabled_filed: continue for item in items: data = float("%1.f" % item['data']) time = int(item['timestamp']) * 1000 final_data['data'][key]['data'].append([time, data]) callback(final_data)
def parse_perfdata(cursor, callback): final_data = {} final_data["data"] = {} yield cursor.fetch_next record = cursor.next_object() if not record: callback(None) all_records = record["data"] final_data["uuid"] = record["uuid"] final_data["type"] = record["type"] # 根据预先定义的颜色值,设置每个数据字段的颜色 colors = get_chart_colors() # 填充keys for key in all_records.keys(): has_disabled_filed = False for field in chart_disabled_fields: if field in key: has_disabled_filed = True break if has_disabled_filed: continue final_data["data"][key] = {} final_data["data"][key]["data"] = [] final_data["data"][key]["color"] = colors.pop() # 填充数据 for key, items in all_records.items(): has_disabled_filed = False for field in chart_disabled_fields: if field in key: has_disabled_filed = True break if has_disabled_filed: continue for item in items: data = float("%1.f" % item["data"]) time = int(item["timestamp"]) * 1000 final_data["data"][key]["data"].append([time, data]) callback(final_data)
def parse_perfdata(cursor, frequency=1, callback=None): """ 根据frequency(频率)计算平均值 每段数据的时间点,取每段的第一条数据 """ fields_data = {} # 获取性能数据的字段 fields = [] while(yield cursor.fetch_next): record = cursor.next_object() perf_data = record['perf_data'] for item in perf_data: field = item['field'] if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") fields.append(field) break cursor.rewind() #根据预先定义的颜色值,设置每个数据字段的颜色 colors = get_chart_colors() # 预先填充字段名 for field in fields: if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") fields_data[str(field)] = {} fields_data[str(field)]['data'] = [] fields_data[str(field)]['color'] = colors.pop() final_data = [] while(yield cursor.fetch_next): record = cursor.next_object() final_data.append(record) data_length = len(final_data) for i in xrange(0, data_length, frequency): start = i if start >0 and frequency>1: start = start - 1 end = i + frequency temp_data = {} for f in fields: temp_data[str(f)] = 0 temp_timestamp = int(final_data[start]['timestamp'] * 1000) for record in final_data[start:end]: perf_data = record['perf_data'] for item in perf_data: field = str(item['field']) if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") data = item['data'][0] # 如果记录中已经存在字段的'别名' if "field_alias" in item: fields_data[field]['field_alias'] = item['field_alias'] # 如果数据的'单位'已经存在与记录中 if "unit" in item: unit = item['unit'] else: unit = re.match(r".*\d(.*)", data).groups()[0] fields_data[field]['unit'] = str(unit) # 替换数据中的'单位'字符串为空格 temp_data[field] += float(data.replace(unit, "")) for k,v in temp_data.items(): value = "%.2f" % (v/frequency) fields_data[k]['data'].append([temp_timestamp, float(value)]) callback(fields_data)
def parse_perfdata(cursor, frequency=1, callback=None): """ 根据frequency(频率)计算平均值 每段数据的时间点,取每段的第一条数据 """ fields_data = {} # 获取性能数据的字段 fields = [] while (yield cursor.fetch_next): record = cursor.next_object() perf_data = record['perf_data'] for item in perf_data: field = item['field'] if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") fields.append(field) break cursor.rewind() #根据预先定义的颜色值,设置每个数据字段的颜色 colors = get_chart_colors() # 预先填充字段名 for field in fields: if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") fields_data[str(field)] = {} fields_data[str(field)]['data'] = [] fields_data[str(field)]['color'] = colors.pop() final_data = [] while (yield cursor.fetch_next): record = cursor.next_object() final_data.append(record) data_length = len(final_data) for i in xrange(0, data_length, frequency): start = i if start > 0 and frequency > 1: start = start - 1 end = i + frequency temp_data = {} for f in fields: temp_data[str(f)] = 0 temp_timestamp = int(final_data[start]['timestamp'] * 1000) for record in final_data[start:end]: perf_data = record['perf_data'] for item in perf_data: field = str(item['field']) if "/" in field: field = field.replace("/", "_") if "'" in field: field = field.replace("'", "") data = item['data'][0] # 如果记录中已经存在字段的'别名' if "field_alias" in item: fields_data[field]['field_alias'] = item['field_alias'] # 如果数据的'单位'已经存在与记录中 if "unit" in item: unit = item['unit'] else: unit = re.match(r".*\d(.*)", data).groups()[0] fields_data[field]['unit'] = str(unit) # 替换数据中的'单位'字符串为空格 temp_data[field] += float(data.replace(unit, "")) for k, v in temp_data.items(): value = "%.2f" % (v / frequency) fields_data[k]['data'].append([temp_timestamp, float(value)]) callback(fields_data)