redisbench-admin 0.11.48__py3-none-any.whl → 0.11.50__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -114,6 +114,26 @@ def create_compare_arguments(parser):
114
114
  type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
115
115
  default=START_TIME_NOW_UTC,
116
116
  )
117
+ parser.add_argument(
118
+ "--from-date-baseline",
119
+ type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
120
+ default=None,
121
+ )
122
+ parser.add_argument(
123
+ "--to-date-baseline",
124
+ type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
125
+ default=None,
126
+ )
127
+ parser.add_argument(
128
+ "--from-date-comparison",
129
+ type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
130
+ default=None,
131
+ )
132
+ parser.add_argument(
133
+ "--to-date-comparison",
134
+ type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
135
+ default=None,
136
+ )
117
137
  parser.add_argument(
118
138
  "--metric_mode",
119
139
  type=str,
@@ -314,6 +314,10 @@ def compare_command_logic(args, project_name, project_version):
314
314
  first_n_baseline,
315
315
  first_n_comparison,
316
316
  grafana_link_base,
317
+ args.from_date_baseline,
318
+ args.to_date_baseline,
319
+ args.from_date_comparison,
320
+ args.to_date_comparison,
317
321
  )
318
322
  comment_body = ""
319
323
  if total_comparison_points > 0:
@@ -593,24 +597,99 @@ def compute_regression_table(
593
597
  first_n_baseline=-1,
594
598
  first_n_comparison=-1,
595
599
  grafana_link_base=None,
600
+ from_date_baseline=None,
601
+ to_date_baseline=None,
602
+ from_date_comparison=None,
603
+ to_date_comparison=None,
596
604
  ):
597
605
  START_TIME_NOW_UTC, _, _ = get_start_time_vars()
598
606
  START_TIME_LAST_MONTH_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=31)
599
- if from_date is None:
600
- from_date = START_TIME_LAST_MONTH_UTC
601
- if to_date is None:
602
- to_date = START_TIME_NOW_UTC
603
- if from_ts_ms is None:
604
- from_ts_ms = int(from_date.timestamp() * 1000)
605
- if to_ts_ms is None:
606
- to_ts_ms = int(to_date.timestamp() * 1000)
607
- from_human_str = humanize.naturaltime(
608
- dt.datetime.utcfromtimestamp(from_ts_ms / 1000)
609
- )
610
- to_human_str = humanize.naturaltime(dt.datetime.utcfromtimestamp(to_ts_ms / 1000))
611
- logging.info(
612
- "Using a time-delta from {} to {}".format(from_human_str, to_human_str)
613
- )
607
+
608
+ # Handle separate baseline and comparison date ranges (takes precedence if defined)
609
+ if (
610
+ from_date_baseline is not None
611
+ or to_date_baseline is not None
612
+ or from_date_comparison is not None
613
+ or to_date_comparison is not None
614
+ ):
615
+ # Use separate date ranges for baseline and comparison
616
+ from_date_baseline = (
617
+ from_date_baseline
618
+ if from_date_baseline is not None
619
+ else START_TIME_LAST_MONTH_UTC
620
+ )
621
+ to_date_baseline = (
622
+ to_date_baseline if to_date_baseline is not None else START_TIME_NOW_UTC
623
+ )
624
+ from_date_comparison = (
625
+ from_date_comparison
626
+ if from_date_comparison is not None
627
+ else START_TIME_LAST_MONTH_UTC
628
+ )
629
+ to_date_comparison = (
630
+ to_date_comparison if to_date_comparison is not None else START_TIME_NOW_UTC
631
+ )
632
+
633
+ from_ts_ms_baseline = int(from_date_baseline.timestamp() * 1000)
634
+ to_ts_ms_baseline = int(to_date_baseline.timestamp() * 1000)
635
+ from_ts_ms_comparison = int(from_date_comparison.timestamp() * 1000)
636
+ to_ts_ms_comparison = int(to_date_comparison.timestamp() * 1000)
637
+
638
+ from_human_str_baseline = humanize.naturaltime(
639
+ dt.datetime.utcfromtimestamp(from_ts_ms_baseline / 1000)
640
+ )
641
+ to_human_str_baseline = humanize.naturaltime(
642
+ dt.datetime.utcfromtimestamp(to_ts_ms_baseline / 1000)
643
+ )
644
+ from_human_str_comparison = humanize.naturaltime(
645
+ dt.datetime.utcfromtimestamp(from_ts_ms_comparison / 1000)
646
+ )
647
+ to_human_str_comparison = humanize.naturaltime(
648
+ dt.datetime.utcfromtimestamp(to_ts_ms_comparison / 1000)
649
+ )
650
+
651
+ logging.info(
652
+ "Using separate time ranges - Baseline: {} to {}, Comparison: {} to {}".format(
653
+ from_human_str_baseline,
654
+ to_human_str_baseline,
655
+ from_human_str_comparison,
656
+ to_human_str_comparison,
657
+ )
658
+ )
659
+
660
+ # Use baseline range for legacy compatibility (will be overridden in data queries)
661
+ from_ts_ms = from_ts_ms_baseline
662
+ to_ts_ms = to_ts_ms_baseline
663
+
664
+ # Set legacy variables for table headers (show separate ranges info)
665
+ from_human_str = f"Baseline: {from_human_str_baseline} to {to_human_str_baseline}, Comparison: {from_human_str_comparison} to {to_human_str_comparison}"
666
+ to_human_str = to_human_str_baseline
667
+ else:
668
+ # Use legacy single date range for both baseline and comparison
669
+ if from_date is None:
670
+ from_date = START_TIME_LAST_MONTH_UTC
671
+ if to_date is None:
672
+ to_date = START_TIME_NOW_UTC
673
+ if from_ts_ms is None:
674
+ from_ts_ms = int(from_date.timestamp() * 1000)
675
+ if to_ts_ms is None:
676
+ to_ts_ms = int(to_date.timestamp() * 1000)
677
+
678
+ # Use same range for both baseline and comparison
679
+ from_ts_ms_baseline = from_ts_ms
680
+ to_ts_ms_baseline = to_ts_ms
681
+ from_ts_ms_comparison = from_ts_ms
682
+ to_ts_ms_comparison = to_ts_ms
683
+
684
+ from_human_str = humanize.naturaltime(
685
+ dt.datetime.utcfromtimestamp(from_ts_ms / 1000)
686
+ )
687
+ to_human_str = humanize.naturaltime(
688
+ dt.datetime.utcfromtimestamp(to_ts_ms / 1000)
689
+ )
690
+ logging.info(
691
+ "Using a time-delta from {} to {}".format(from_human_str, to_human_str)
692
+ )
614
693
  baseline_str, by_str_baseline, comparison_str, by_str_comparison = get_by_strings(
615
694
  baseline_branch,
616
695
  comparison_branch,
@@ -694,6 +773,10 @@ def compute_regression_table(
694
773
  comparison_tag,
695
774
  from_date,
696
775
  to_date,
776
+ from_ts_ms_baseline,
777
+ to_ts_ms_baseline,
778
+ from_ts_ms_comparison,
779
+ to_ts_ms_comparison,
697
780
  )
698
781
  logging.info(
699
782
  "Printing differential analysis between {} and {}".format(
@@ -944,7 +1027,56 @@ def from_rts_to_regression_table(
944
1027
  comparison_tag=None,
945
1028
  from_date=None,
946
1029
  to_date=None,
1030
+ from_ts_ms_baseline=None,
1031
+ to_ts_ms_baseline=None,
1032
+ from_ts_ms_comparison=None,
1033
+ to_ts_ms_comparison=None,
947
1034
  ):
1035
+ # Use separate timestamp ranges if provided, otherwise use legacy single range
1036
+ if (
1037
+ from_ts_ms_baseline is not None
1038
+ and to_ts_ms_baseline is not None
1039
+ and from_ts_ms_comparison is not None
1040
+ and to_ts_ms_comparison is not None
1041
+ ):
1042
+ # Use separate ranges for baseline and comparison
1043
+ baseline_from_ts = from_ts_ms_baseline
1044
+ baseline_to_ts = to_ts_ms_baseline
1045
+ comparison_from_ts = from_ts_ms_comparison
1046
+ comparison_to_ts = to_ts_ms_comparison
1047
+ baseline_from_human = humanize.naturaltime(
1048
+ dt.datetime.utcfromtimestamp(baseline_from_ts / 1000)
1049
+ )
1050
+ baseline_to_human = humanize.naturaltime(
1051
+ dt.datetime.utcfromtimestamp(baseline_to_ts / 1000)
1052
+ )
1053
+ comparison_from_human = humanize.naturaltime(
1054
+ dt.datetime.utcfromtimestamp(comparison_from_ts / 1000)
1055
+ )
1056
+ comparison_to_human = humanize.naturaltime(
1057
+ dt.datetime.utcfromtimestamp(comparison_to_ts / 1000)
1058
+ )
1059
+ logging.info(
1060
+ "Using separate timestamp ranges - Baseline: {} to {}, Comparison: {} to {}".format(
1061
+ baseline_from_human, baseline_to_human, comparison_from_human, comparison_to_human
1062
+ )
1063
+ )
1064
+ else:
1065
+ # Use legacy single range for both
1066
+ baseline_from_ts = from_ts_ms
1067
+ baseline_to_ts = to_ts_ms
1068
+ comparison_from_ts = from_ts_ms
1069
+ comparison_to_ts = to_ts_ms
1070
+ from_human = humanize.naturaltime(
1071
+ dt.datetime.utcfromtimestamp(from_ts_ms / 1000)
1072
+ )
1073
+ to_human = humanize.naturaltime(dt.datetime.utcfromtimestamp(to_ts_ms / 1000))
1074
+ logging.info(
1075
+ "Using single timestamp range for both baseline and comparison: {} to {}".format(
1076
+ from_human, to_human
1077
+ )
1078
+ )
1079
+
948
1080
  print_all = print_regressions_only is False and print_improvements_only is False
949
1081
  table = []
950
1082
  detected_regressions = []
@@ -1045,7 +1177,7 @@ def from_rts_to_regression_table(
1045
1177
  try:
1046
1178
  for ts_name_baseline in baseline_timeseries:
1047
1179
  datapoints_inner = rts.ts().revrange(
1048
- ts_name_baseline, from_ts_ms, to_ts_ms
1180
+ ts_name_baseline, baseline_from_ts, baseline_to_ts
1049
1181
  )
1050
1182
  baseline_datapoints.extend(datapoints_inner)
1051
1183
  (
@@ -1064,7 +1196,7 @@ def from_rts_to_regression_table(
1064
1196
  )
1065
1197
  for ts_name_comparison in comparison_timeseries:
1066
1198
  datapoints_inner = rts.ts().revrange(
1067
- ts_name_comparison, from_ts_ms, to_ts_ms
1199
+ ts_name_comparison, comparison_from_ts, comparison_to_ts
1068
1200
  )
1069
1201
  comparison_datapoints.extend(datapoints_inner)
1070
1202
 
@@ -1533,9 +1665,11 @@ def check_client_side_latency(
1533
1665
  comparison_ts = comparison_client_ts[0]
1534
1666
 
1535
1667
  # Get client-side latency data
1536
- baseline_client_data = rts.ts().revrange(baseline_ts, from_ts_ms, to_ts_ms)
1668
+ baseline_client_data = rts.ts().revrange(
1669
+ baseline_ts, baseline_from_ts, baseline_to_ts
1670
+ )
1537
1671
  comparison_client_data = rts.ts().revrange(
1538
- comparison_ts, from_ts_ms, to_ts_ms
1672
+ comparison_ts, comparison_from_ts, comparison_to_ts
1539
1673
  )
1540
1674
 
1541
1675
  if len(baseline_client_data) == 0 or len(comparison_client_data) == 0:
@@ -1878,11 +2012,15 @@ def perform_variance_and_p99_analysis(
1878
2012
  comparison_p99_data = []
1879
2013
 
1880
2014
  for ts_name in baseline_ts_list:
1881
- datapoints = rts.ts().revrange(ts_name, from_ts_ms, to_ts_ms)
2015
+ datapoints = rts.ts().revrange(
2016
+ ts_name, baseline_from_ts, baseline_to_ts
2017
+ )
1882
2018
  baseline_p99_data.extend(datapoints)
1883
2019
 
1884
2020
  for ts_name in comparison_ts_list:
1885
- datapoints = rts.ts().revrange(ts_name, from_ts_ms, to_ts_ms)
2021
+ datapoints = rts.ts().revrange(
2022
+ ts_name, comparison_from_ts, comparison_to_ts
2023
+ )
1886
2024
  comparison_p99_data.extend(datapoints)
1887
2025
 
1888
2026
  if len(baseline_p99_data) < 3 or len(comparison_p99_data) < 3:
@@ -2230,11 +2368,15 @@ def check_latency_for_unstable_throughput(
2230
2368
  comparison_latency_data = []
2231
2369
 
2232
2370
  for ts_name in baseline_ts_list:
2233
- datapoints = rts.ts().revrange(ts_name, from_ts_ms, to_ts_ms)
2371
+ datapoints = rts.ts().revrange(
2372
+ ts_name, baseline_from_ts, baseline_to_ts
2373
+ )
2234
2374
  baseline_latency_data.extend(datapoints)
2235
2375
 
2236
2376
  for ts_name in comparison_ts_list:
2237
- datapoints = rts.ts().revrange(ts_name, from_ts_ms, to_ts_ms)
2377
+ datapoints = rts.ts().revrange(
2378
+ ts_name, comparison_from_ts, comparison_to_ts
2379
+ )
2238
2380
  comparison_latency_data.extend(datapoints)
2239
2381
 
2240
2382
  if len(baseline_latency_data) == 0 or len(comparison_latency_data) == 0:
@@ -48,3 +48,90 @@ def exists_check(error_message, local_module_file, status):
48
48
  "Confirmed that module artifact: '{}' exists!".format(local_module_file)
49
49
  )
50
50
  return error_message, status
51
+
52
+
53
+ def redis_files_check(redis_server_binary_path, redis_conf_path):
54
+ """
55
+ Check if custom Redis server binary and config file paths exist.
56
+
57
+ Args:
58
+ redis_server_binary_path: Path to custom redis-server binary (can be None)
59
+ redis_conf_path: Path to custom redis.conf file (can be None)
60
+
61
+ Returns:
62
+ tuple: (status, error_message) where status is True if all files exist
63
+ """
64
+ status = True
65
+ error_message = ""
66
+
67
+ if redis_server_binary_path is not None:
68
+ # Convert relative paths to absolute paths
69
+ redis_server_binary_path = os.path.abspath(
70
+ os.path.expanduser(redis_server_binary_path)
71
+ )
72
+ logging.info(
73
+ "Checking if custom Redis server binary {} exists...".format(
74
+ redis_server_binary_path
75
+ )
76
+ )
77
+ if not os.path.exists(redis_server_binary_path):
78
+ error_message = "Specified Redis server binary does not exist: {}".format(
79
+ redis_server_binary_path
80
+ )
81
+ logging.error(error_message)
82
+ status = False
83
+ elif not os.path.isfile(redis_server_binary_path):
84
+ error_message = (
85
+ "Specified Redis server binary path is not a file: {}".format(
86
+ redis_server_binary_path
87
+ )
88
+ )
89
+ logging.error(error_message)
90
+ status = False
91
+ elif not os.access(redis_server_binary_path, os.X_OK):
92
+ error_message = (
93
+ "Specified Redis server binary is not executable: {}".format(
94
+ redis_server_binary_path
95
+ )
96
+ )
97
+ logging.error(error_message)
98
+ status = False
99
+ else:
100
+ logging.info(
101
+ "✅ Confirmed that Redis server binary: '{}' exists and is executable!".format(
102
+ redis_server_binary_path
103
+ )
104
+ )
105
+
106
+ if redis_conf_path is not None:
107
+ # Convert relative paths to absolute paths
108
+ redis_conf_path = os.path.abspath(os.path.expanduser(redis_conf_path))
109
+ logging.info(
110
+ "Checking if custom Redis config file {} exists...".format(redis_conf_path)
111
+ )
112
+ if not os.path.exists(redis_conf_path):
113
+ error_message = "Specified Redis config file does not exist: {}".format(
114
+ redis_conf_path
115
+ )
116
+ logging.error(error_message)
117
+ status = False
118
+ elif not os.path.isfile(redis_conf_path):
119
+ error_message = "Specified Redis config file path is not a file: {}".format(
120
+ redis_conf_path
121
+ )
122
+ logging.error(error_message)
123
+ status = False
124
+ elif not os.access(redis_conf_path, os.R_OK):
125
+ error_message = "Specified Redis config file is not readable: {}".format(
126
+ redis_conf_path
127
+ )
128
+ logging.error(error_message)
129
+ status = False
130
+ else:
131
+ logging.info(
132
+ "✅ Confirmed that Redis config file: '{}' exists and is readable!".format(
133
+ redis_conf_path
134
+ )
135
+ )
136
+
137
+ return status, error_message
@@ -35,7 +35,7 @@ from redisbench_admin.run.common import (
35
35
  )
36
36
  from redisbench_admin.run.git import git_vars_crosscheck
37
37
  from redisbench_admin.run.grafana import generate_artifacts_table_grafana_redis
38
- from redisbench_admin.run.modules import redis_modules_check
38
+ from redisbench_admin.run.modules import redis_modules_check, redis_files_check
39
39
  from redisbench_admin.run.redistimeseries import (
40
40
  timeseries_test_sucess_flow,
41
41
  timeseries_test_failure_flow,
@@ -229,6 +229,25 @@ def run_remote_command_logic(args, project_name, project_version):
229
229
  )
230
230
  )
231
231
 
232
+ # Validate Redis server binary and config file paths early
233
+ redis_files_check_status, redis_error_message = redis_files_check(
234
+ args.redis_server_binary, args.redis_conf
235
+ )
236
+ if redis_files_check_status is False:
237
+ if webhook_notifications_active:
238
+ failure_reason = redis_error_message
239
+ generate_failure_notification(
240
+ webhook_client_slack,
241
+ ci_job_name,
242
+ ci_job_link,
243
+ failure_reason,
244
+ tf_github_org,
245
+ tf_github_repo,
246
+ tf_github_branch,
247
+ None,
248
+ )
249
+ exit(1)
250
+
232
251
  common_properties_log(
233
252
  tf_bin_path,
234
253
  tf_github_actor,
@@ -58,7 +58,7 @@ def get_git_root(path):
58
58
  def view_bar_simple(a, b):
59
59
  res = a / int(b) * 100
60
60
  # Only update progress every 5% to reduce output frequency
61
- if not hasattr(view_bar_simple, 'last_percent'):
61
+ if not hasattr(view_bar_simple, "last_percent"):
62
62
  view_bar_simple.last_percent = 0
63
63
 
64
64
  if res - view_bar_simple.last_percent >= 5.0 or res >= 100.0:
@@ -83,12 +83,16 @@ class ProgressCallback:
83
83
  def __call__(self, transferred, total):
84
84
  percent = (transferred / total) * 100
85
85
 
86
- if (percent - self.last_percent >= self.update_threshold or
87
- percent >= 100.0 or
88
- self.last_percent == 0):
86
+ if (
87
+ percent - self.last_percent >= self.update_threshold
88
+ or percent >= 100.0
89
+ or self.last_percent == 0
90
+ ):
89
91
 
90
92
  if self.show_bytes:
91
- sys.stdout.write(f"\r Progress: {percent:.1f}% ({transferred}/{total} bytes)")
93
+ sys.stdout.write(
94
+ f"\r Progress: {percent:.1f}% ({transferred}/{total} bytes)"
95
+ )
92
96
  else:
93
97
  sys.stdout.write(f"\r Complete percent: {percent:.2f}%%")
94
98
  sys.stdout.flush()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redisbench-admin
3
- Version: 0.11.48
3
+ Version: 0.11.50
4
4
  Summary: Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... ).
5
5
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -3,8 +3,8 @@ redisbench_admin/cli.py,sha256=LAS5qnqScXKhxHYfXWB0mvAYaUYrSurIwadhexEa9g4,7740
3
3
  redisbench_admin/commands/__init__.py,sha256=mzVrEtqefFdopyzR-W6xx3How95dyZfToGKm1-_YzeY,95
4
4
  redisbench_admin/commands/commands.json.py,sha256=mzVrEtqefFdopyzR-W6xx3How95dyZfToGKm1-_YzeY,95
5
5
  redisbench_admin/compare/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
6
- redisbench_admin/compare/args.py,sha256=rOP8td_GYPYsZiYN4olyYmUsku-oizggEZNRTB_fVro,6336
7
- redisbench_admin/compare/compare.py,sha256=NvC7RbQUJUKlPdJQj9TjUmk2k8UtiA9wnZWNDV7IM_Q,103315
6
+ redisbench_admin/compare/args.py,sha256=BPLdYSBTk7DUMPjqsCxiHlaTMSUuTH2Lc60WdECDZ-g,6940
7
+ redisbench_admin/compare/compare.py,sha256=FdweCQkXSabUzhv6y3HVwoE_JwAKUIc1Pc3hC8Hwhoo,108833
8
8
  redisbench_admin/deploy/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
9
9
  redisbench_admin/deploy/args.py,sha256=neLUcQqI__HkJItkQg2C293hl5g3yHG40t171r7-E5Y,1732
10
10
  redisbench_admin/deploy/deploy.py,sha256=MtfJbsL97DLrbBYut6zRCzyEMebX4xWoZE-m4-JDRB8,3885
@@ -184,7 +184,7 @@ redisbench_admin/run/grafana.py,sha256=iMDgMyJKinpZMTD43rZ1IcRGkadjFjCxaB48mYWkv
184
184
  redisbench_admin/run/memtier_benchmark/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
185
185
  redisbench_admin/run/memtier_benchmark/memtier_benchmark.py,sha256=wTd2olovvFBZ98mOSr6DM5BJsdaiuPteEZzBqeSgbkE,4246
186
186
  redisbench_admin/run/metrics.py,sha256=8EQdcZbCiFB_kIR1WtUQNOPV8y74bZ8Dj51Cv0aR4nk,7556
187
- redisbench_admin/run/modules.py,sha256=9To85oDw2tmUNmTDxOgvKls_46oZRcd2cCt6xNjIWiA,1691
187
+ redisbench_admin/run/modules.py,sha256=NehcSl3mVLeZ5H_x2thgYTYa5SOc5KSH8HDO2MCdb14,4905
188
188
  redisbench_admin/run/redis_benchmark/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
189
189
  redisbench_admin/run/redis_benchmark/redis_benchmark.py,sha256=e-Az2uTlt3z2W4uzlUsdxeT8GITpxpGb-Mjb6JxrSWc,6848
190
190
  redisbench_admin/run/redisgraph_benchmark_go/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
@@ -220,7 +220,7 @@ redisbench_admin/run_remote/remote_db.py,sha256=VNsJmJf7803gsCd_lhwCb37V-xd_mC25
220
220
  redisbench_admin/run_remote/remote_env.py,sha256=Ux_0QT1unNRlKl3cakzjG5Px1uuxOOfBoF_pnalx_T8,4936
221
221
  redisbench_admin/run_remote/remote_failures.py,sha256=IOo6DyxarcwwMPCeN4gWB2JrhuC9iBLwq0nCROqr5ak,1567
222
222
  redisbench_admin/run_remote/remote_helpers.py,sha256=skWeGyDJBmyx_UwUekT3N3_nOJvF2-Hvu-E7vKlO9gg,10598
223
- redisbench_admin/run_remote/run_remote.py,sha256=4IvKwjWRV0vubC-S388_m6W9oy-OtmbApzode7tp1Dw,76602
223
+ redisbench_admin/run_remote/run_remote.py,sha256=c5utaihKGY42nBTPFraIkW0yYRDHzf1LxsBgCJfNJP4,77264
224
224
  redisbench_admin/run_remote/standalone.py,sha256=dEidNJIprjRiFQqAAM-drYsks2ZZLjRKLs0Y4bfKe-w,33338
225
225
  redisbench_admin/run_remote/terraform.py,sha256=vV3eWXNwj7vsnFNqUgCir5ueZS4VYopEyzWiTtoSq0Q,4018
226
226
  redisbench_admin/utils/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
@@ -228,15 +228,15 @@ redisbench_admin/utils/benchmark_config.py,sha256=71n2gm8ObeCBzNWQ0MLO7zRjIvmIzg
228
228
  redisbench_admin/utils/local.py,sha256=zUvyVI9LZMT3qyxs1pO3mXL6Bt_1z9EZUGppaRcWNRA,3890
229
229
  redisbench_admin/utils/redisearch.py,sha256=lchUEzpt0zB1rHwlDlw9LLifAnxFWcLP-PePw7TjL-0,1602
230
230
  redisbench_admin/utils/redisgraph_benchmark_go.py,sha256=os7EJt6kBxsFJLKkSoANbjMT7-cEq4-Ns-49alk2Tf8,2048
231
- redisbench_admin/utils/remote.py,sha256=-spZFP9-sChXd-EjBU_OeDuJsFq4LpyXiDhP--070mM,43487
231
+ redisbench_admin/utils/remote.py,sha256=ewjSUX8xsQYolzVPXfaA7y1PWGWL7emwG4W9jspn14Y,43547
232
232
  redisbench_admin/utils/results.py,sha256=uKk3uNJ--bSXlUj_HGQ2OaV6MVqmXJVM8xTzFV6EOw4,3267
233
233
  redisbench_admin/utils/ssh.py,sha256=QW4AwlocMHJt05QMdN_4f8WeDmxiEwR80ny8VBThq6k,6533
234
234
  redisbench_admin/utils/utils.py,sha256=XVSvo1_DdcYwk2jOxL3VPVPbnDnhGYt8ieYfANo6rTo,15085
235
235
  redisbench_admin/watchdog/__init__.py,sha256=cD7zfXt0VEmy0b7452HvcAxX_9kVj6Vm213yNdUHP20,95
236
236
  redisbench_admin/watchdog/args.py,sha256=nKsG1G6ATOZlAMHMtT9u3kXxduKCbejSZ5x8oB_ynZ8,1312
237
237
  redisbench_admin/watchdog/watchdog.py,sha256=0wWYge3x_OMxWrzazNhJif2NK4tKsI963HVZqjczRag,6189
238
- redisbench_admin-0.11.48.dist-info/LICENSE,sha256=AAMtfs82zOOvmG68vILivm6lxi2rcOlGObmA8jzxQvw,10768
239
- redisbench_admin-0.11.48.dist-info/METADATA,sha256=8wFuMRH-WXIhRr6BxIq3-IwpieN60sShDuKt6OagSR0,5596
240
- redisbench_admin-0.11.48.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
241
- redisbench_admin-0.11.48.dist-info/entry_points.txt,sha256=UUawXk_AS-PlieKJ1QxPQXGsRLb6OW_F0MtmA1W0KE8,113
242
- redisbench_admin-0.11.48.dist-info/RECORD,,
238
+ redisbench_admin-0.11.50.dist-info/LICENSE,sha256=AAMtfs82zOOvmG68vILivm6lxi2rcOlGObmA8jzxQvw,10768
239
+ redisbench_admin-0.11.50.dist-info/METADATA,sha256=v3BjufPIxSYH3J9AsIzQ5lsr5i2QEnFvv6yY1ZFxkNY,5596
240
+ redisbench_admin-0.11.50.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
241
+ redisbench_admin-0.11.50.dist-info/entry_points.txt,sha256=UUawXk_AS-PlieKJ1QxPQXGsRLb6OW_F0MtmA1W0KE8,113
242
+ redisbench_admin-0.11.50.dist-info/RECORD,,