import unittest from diagnosis.dataloader.converter import collect_timestamps_for_digest, convert_slowlog_to_metrics from diagnosis.dataloader.dataloader import * class TestMetricsLoader(unittest.TestCase): def test_load_data(self): cfg = { "metrics_load_rules": [ { "cluster_id": "1379661944621804065", "rule": { "name": "tidb_executor_statement_total", "expr": "sum(rate(tidb_executor_statement_total{" "type=~\"Insert|Delete|Select|Update|Replace\"}[2m])) by (type) " }, "start_timestamp": 1680624000, "end_timestamp": 1680625000, "step": 120, "out_path": "./1379661944621804065_tidb_executor_statement_total_405.csv" }, { "cluster_id": "1379661944621804065", "rule": { "name": "tidb_server_query_total", "expr": "sum(rate(tidb_server_query_total{type=~\"StmtExecute|StmtFetch|StmtClose|StmtPrepare" "|StmtSendLongData|Query\"}[2m])) by (type) " }, "start_timestamp": 1680624000, "end_timestamp": 1680625000, "step": 120, "out_path": "./1379661944621804065_tidb_server_query_total_405.csv" }, { "cluster_id": "1379661944621804065", "rule": { "name": "tidb_server_execute_error_total", "expr": "sum(increase(tidb_server_execute_error_total{}[1m])) by (type, instance)" }, "start_timestamp": 1680624000, "end_timestamp": 1680625000, "step": 120, "out_path": "./1379661944621804065_tidb_server_execute_error_total_405.csv" } ] } for r in cfg["metrics_load_rules"]: c = config.MetricsLoadConfig(**r) c.rule = sdk_config.Rule(**r["rule"]) str1 = "-" str2 = "-" loader = MetricsLoader(c, sdk_config.Env.prod, str1, str2) try: loader.load_data() except: print("get err", sys.exc_info()[1]) class TestSlowlogLoader(unittest.TestCase): def test_Load_data(self): cfg = { "slowlog_load_rules": [ { "cluster_id": "1379661944621804065", "start_timestamp": 1680587600, "end_timestamp": 1680587800, "out_path": "./1379661944621804065_slowlog_405.csv" } ] } for r in cfg["slowlog_load_rules"]: c = config.SlowLogLoadConfig(**r) str1 = "-" str2 = "-" loader = SlowLogsLoader(c, sdk_config.Env.prod, str1, str2) try: loader.load_data() except: print("get err", sys.exc_info()[1]) class TestSqliteLoader(unittest.TestCase): def test_data_load(self): cfg = config.SqliteLoadConfig("./test/sqlite", "test") loader = SqliteLoader(cfg) try: r1, r2 = loader.load_data() except: print("get err", sys.exc_info()[1]) else: result = collect_timestamps_for_digest(r2) convert_slowlog_to_metrics(r2, 1680681200, 1680681800, "./test/sqlite/test") print(result) class Test(unittest.TestCase): def test_convert_tables_to_dataframe(self): try: r1 = convert_tables_to_dataframe("./test/sqlite/1379661944636084130_1681142400_1681228800.sqlite") except: print("get error", sys.exc_info()[1]) else: print(r1) if __name__ == '__main__': unittest.main()