import pandas as pd from diagnosis.preprocess.utils import utils def convert_slowlog_to_metrics(data: pd.DataFrame, start_ts, end_ts, sqlite_name): digest_data = collect_timestamps_for_digest(data) metric = utils.convert_to_metrics(digest_data, start_ts, end_ts, 120) sqlite_data = utils.build_data_for_sqlite(metric, start_ts, end_ts, 120) create_sql, insert_sql = utils.build_create_sql( sqlite_data, "slowlog_rate", "INTEGER", True) utils.create_sqlite(sqlite_name, create_sql, insert_sql, sqlite_data[1:]) def collect_timestamps_for_digest(data: pd.DataFrame): result = {} for index, row in data.iterrows(): key = '"{}"'.format(row["digest"]) value = int(row["time"]) if key not in result: result[key] = [] result[key].append(value) return result