redis-benchmarks-specification 0.1.256__py3-none-any.whl → 0.1.257__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.

Potentially problematic release.


This version of redis-benchmarks-specification might be problematic. Click here for more details.

@@ -500,3 +500,8 @@ def generate_stats_cli_command_logic(args, project_name, project_version):
500
500
  conn.sadd(tested_groups_key, group)
501
501
  for command in list(tracked_commands_json.keys()):
502
502
  conn.sadd(tested_commands_key, command)
503
+
504
+ logging.info(f"There is a total of : {len(tracked_groups)} tracked command groups.")
505
+ logging.info(
506
+ f"There is a total of : {len(list(tracked_commands_json.keys()))} tracked commands."
507
+ )
@@ -8,6 +8,10 @@
8
8
  import datetime
9
9
  import os
10
10
 
11
+ from redis_benchmarks_specification.__common__.env import (
12
+ SPECS_PATH_TEST_SUITES,
13
+ )
14
+
11
15
 
12
16
  def get_start_time_vars(start_time=None):
13
17
  if start_time is None:
@@ -30,6 +34,12 @@ START_TIME_LAST_SIX_MONTHS_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=18
30
34
 
31
35
 
32
36
  def create_compare_arguments(parser):
37
+ parser.add_argument(
38
+ "--test-suites-folder",
39
+ type=str,
40
+ default=SPECS_PATH_TEST_SUITES,
41
+ help="Test suites folder, containing the different test variations",
42
+ )
33
43
  parser.add_argument(
34
44
  "--test",
35
45
  type=str,
@@ -27,6 +27,7 @@ from redis_benchmarks_specification.__common__.github import (
27
27
  )
28
28
  from redis_benchmarks_specification.__compare__.args import create_compare_arguments
29
29
 
30
+ from redis_benchmarks_specification.__common__.runner import get_benchmark_specs
30
31
 
31
32
  from redis_benchmarks_specification.__common__.package import (
32
33
  get_version_string,
@@ -268,6 +269,40 @@ def compare_command_logic(args, project_name, project_version):
268
269
  )
269
270
  )
270
271
 
272
+ testsuites_folder = os.path.abspath(args.test_suites_folder)
273
+ logging.info("Using test-suites folder dir {}".format(testsuites_folder))
274
+ testsuite_spec_files = get_benchmark_specs(testsuites_folder)
275
+ logging.info(
276
+ "There are a total of {} test-suites being run in folder {}".format(
277
+ len(testsuite_spec_files), testsuites_folder
278
+ )
279
+ )
280
+ tests_with_config = {}
281
+ for test_file in testsuite_spec_files:
282
+ if args.defaults_filename in test_file:
283
+ continue
284
+ benchmark_config = {}
285
+ with open(test_file, "r") as stream:
286
+ try:
287
+ benchmark_config = yaml.safe_load(stream)
288
+ test_name = benchmark_config["name"]
289
+ tests_with_config[test_name] = benchmark_config
290
+ if "tested-groups" in benchmark_config:
291
+ origin_tested_groups = benchmark_config["tested-groups"]
292
+ else:
293
+ logging.warn("dont have test groups in {}".format(test_name))
294
+ if "tested-commands" in benchmark_config:
295
+ origin_tested_commands = benchmark_config["tested-commands"]
296
+ else:
297
+ logging.warn("dont have test commands in {}".format(test_name))
298
+ except Exception as e:
299
+ logging.error(
300
+ "while loading file {} and error was returned: {}".format(
301
+ test_file, e.__str__()
302
+ )
303
+ )
304
+ pass
305
+
271
306
  fn = check_regression_comment
272
307
  (
273
308
  contains_regression_comment,
@@ -330,6 +365,7 @@ def compare_command_logic(args, project_name, project_version):
330
365
  comparison_github_org,
331
366
  args.regression_str,
332
367
  args.improvement_str,
368
+ tests_with_config,
333
369
  )
334
370
  total_regressions = len(regressions_list)
335
371
  total_improvements = len(improvements_list)
@@ -588,6 +624,7 @@ def compute_regression_table(
588
624
  comparison_github_org="redis",
589
625
  regression_str="REGRESSION",
590
626
  improvement_str="IMPROVEMENT",
627
+ tests_with_config={},
591
628
  ):
592
629
  START_TIME_NOW_UTC, _, _ = get_start_time_vars()
593
630
  START_TIME_LAST_MONTH_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=31)
@@ -668,6 +705,8 @@ def compute_regression_table(
668
705
  baseline_only_list,
669
706
  comparison_only_list,
670
707
  no_datapoints_list,
708
+ group_change,
709
+ command_change,
671
710
  ) = from_rts_to_regression_table(
672
711
  baseline_deployment_name,
673
712
  comparison_deployment_name,
@@ -698,6 +737,7 @@ def compute_regression_table(
698
737
  comparison_github_org,
699
738
  regression_str,
700
739
  improvement_str,
740
+ tests_with_config,
701
741
  )
702
742
  logging.info(
703
743
  "Printing differential analysis between {} and {}".format(
@@ -712,6 +752,22 @@ def compute_regression_table(
712
752
  baseline_deployment_name,
713
753
  )
714
754
 
755
+ table_output += "<details>\n <summary>By GROUP change csv:</summary>\n\n"
756
+ table_output += "\ncommand_group,min_change,max_change \n"
757
+ for group_name, changes_list in group_change.items():
758
+ max_change = max(changes_list)
759
+ min_change = min(changes_list)
760
+ table_output += f"{group_name},{min_change:.3f},{max_change:.3f}\n"
761
+ table_output += "\n</details>\n"
762
+ table_output += "\n\n"
763
+ table_output += "<details>\n <summary>By COMMAND change csv:</summary>\n\n"
764
+ table_output += "\ncommand,min_change,max_change \n"
765
+ for command_name, changes_list in command_change.items():
766
+ max_change = max(changes_list)
767
+ min_change = min(changes_list)
768
+ table_output += f"{command_name},{min_change:.3f},{max_change:.3f}\n"
769
+ table_output += "\n</details>\n"
770
+
715
771
  if total_unstable > 0:
716
772
  old_stdout = sys.stdout
717
773
  sys.stdout = mystdout = StringIO()
@@ -819,7 +875,7 @@ def compute_regression_table(
819
875
  if len_no_datapoints > 0:
820
876
  table_output += f"\n WARNING: There were {len_no_datapoints} benchmarks with NO datapoints for both baseline and comparison.\n\n"
821
877
  no_datapoints_test_names_str = "|".join([l for l in no_datapoints_list])
822
-
878
+
823
879
  table_output += (
824
880
  f" NO DATAPOINTS test regexp names: {no_datapoints_test_names_str}\n\n"
825
881
  )
@@ -999,6 +1055,7 @@ def from_rts_to_regression_table(
999
1055
  comparison_github_org="redis",
1000
1056
  regression_str="REGRESSION",
1001
1057
  improvement_str="IMPROVEMENT",
1058
+ tests_with_config={},
1002
1059
  ):
1003
1060
  print_all = print_regressions_only is False and print_improvements_only is False
1004
1061
  table_full = []
@@ -1022,8 +1079,20 @@ def from_rts_to_regression_table(
1022
1079
  no_datapoints_list = []
1023
1080
  no_datapoints_baseline_list = []
1024
1081
  no_datapoints_comparison_list = []
1082
+ group_change = {}
1083
+ command_change = {}
1025
1084
  original_metric_mode = metric_mode
1026
1085
  for test_name in test_names:
1086
+ tested_groups = []
1087
+ tested_commands = []
1088
+ if test_name in tests_with_config:
1089
+ test_spec = tests_with_config[test_name]
1090
+ if "tested-groups" in test_spec:
1091
+ tested_groups = test_spec["tested-groups"]
1092
+ if "tested-commands" in test_spec:
1093
+ tested_commands = test_spec["tested-commands"]
1094
+ else:
1095
+ logging.error(f"Test does not contain spec info: {test_name}")
1027
1096
  metric_mode = original_metric_mode
1028
1097
  compare_version = "main"
1029
1098
  # GE
@@ -1257,6 +1326,16 @@ def from_rts_to_regression_table(
1257
1326
  if simplify_table is False:
1258
1327
  note = note + " No Change"
1259
1328
 
1329
+ for test_group in tested_groups:
1330
+ if test_group not in group_change:
1331
+ group_change[test_group] = []
1332
+ group_change[test_group].append(percentage_change)
1333
+
1334
+ for test_command in tested_commands:
1335
+ if test_command not in command_change:
1336
+ command_change[test_command] = []
1337
+ command_change[test_command].append(percentage_change)
1338
+
1260
1339
  if (
1261
1340
  detected_improvement is False
1262
1341
  and detected_regression is False
@@ -1345,6 +1424,8 @@ def from_rts_to_regression_table(
1345
1424
  baseline_only_list,
1346
1425
  comparison_only_list,
1347
1426
  no_datapoints_list,
1427
+ group_change,
1428
+ command_change,
1348
1429
  )
1349
1430
 
1350
1431
 
@@ -0,0 +1,34 @@
1
+ version: 0.4
2
+ name: memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10
3
+ description: Runs memtier_benchmark, for a keyspace length of 1M keys int encoded, checking STRLEN command performance.
4
+ dbconfig:
5
+ configuration-parameters:
6
+ save: '""'
7
+ check:
8
+ keyspacelen: 999998
9
+ preload_tool:
10
+ run_image: redislabs/memtier_benchmark:edge
11
+ tool: memtier_benchmark
12
+ arguments: ' --command "SET __key__ __key__" --key-prefix "" --command-key-pattern="S" --key-minimum=2 --key-maximum 1000000 -c 1 -t 1 --pipeline 100 --hide-histogram -n allkeys'
13
+ resources:
14
+ requests:
15
+ memory: 1g
16
+ tested-commands:
17
+ - strlen
18
+ redis-topologies:
19
+ - oss-standalone
20
+ build-variants:
21
+ - gcc:8.5.0-amd64-debian-buster-default
22
+ - dockerhub
23
+ clientconfig:
24
+ run_image: redislabs/memtier_benchmark:edge
25
+ tool: memtier_benchmark
26
+ arguments: --command "STRLEN __key__" --key-prefix "" --command-key-pattern="G" --key-minimum=2 --key-maximum 1000000 -c 50 -t 4 --pipeline 10 --hide-histogram --test-time 60
27
+ resources:
28
+ requests:
29
+ cpus: '4'
30
+ memory: 2g
31
+
32
+ tested-groups:
33
+ - string
34
+ priority: 98
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.1.256
3
+ Version: 0.1.257
4
4
  Summary: The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.
5
5
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -9,7 +9,7 @@ redis_benchmarks_specification/__builder__/schema.py,sha256=1wcmyVJBcWrBvK58pghN
9
9
  redis_benchmarks_specification/__cli__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
10
10
  redis_benchmarks_specification/__cli__/args.py,sha256=uZkk1Jom9i0xJ_OpVMrIWbw_70jFo7IswLV2EtKTKEA,7210
11
11
  redis_benchmarks_specification/__cli__/cli.py,sha256=6tt0Ai-JIFEF3ykWFU2_g5ZrzKVIoyLLXUmyzYpVDF4,21843
12
- redis_benchmarks_specification/__cli__/stats.py,sha256=wahzZRbpfokv8dQU8O4BH5JFrOZk-l6k8LWdKfue9_0,20204
12
+ redis_benchmarks_specification/__cli__/stats.py,sha256=QbxiJj_F5Hu7ktstBcS45xekPE9CmEl-niYiZcX8dZA,20411
13
13
  redis_benchmarks_specification/__common__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  redis_benchmarks_specification/__common__/builder_schema.py,sha256=kfDpRIk7NkJrb5qj9jzsBhLVNO7K_W2Clumj4pxrkG8,5938
15
15
  redis_benchmarks_specification/__common__/env.py,sha256=kvJ8Ll-fvI_Tc0vynrzUEr22TqnJizzvJ4Lu9RjNr_M,3119
@@ -19,8 +19,8 @@ redis_benchmarks_specification/__common__/runner.py,sha256=7DBI09eu_4RibK6MwcYyI
19
19
  redis_benchmarks_specification/__common__/spec.py,sha256=eTF5559epBB0FrJPx-jRDQVeP_ZVOgyC7Vjxr2xk6fo,3262
20
20
  redis_benchmarks_specification/__common__/timeseries.py,sha256=_LJFtC5sVP7DTaLZaIzv5g7wRxPTQZRwFIYvWX4p4N8,50533
21
21
  redis_benchmarks_specification/__compare__/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
22
- redis_benchmarks_specification/__compare__/args.py,sha256=-vQco6WG73DJtUFA7s-5bNk05vwHjOc94puVKZMZUYE,6513
23
- redis_benchmarks_specification/__compare__/compare.py,sha256=9O5tiQR5rGpuHawPmVJbpb6_mjN_LpNMHr9jtqzIRxA,53480
22
+ redis_benchmarks_specification/__compare__/args.py,sha256=FlKD1wutBoKxeahpXw1gY2H_1FOPH5y-o5QsIPfFsT0,6802
23
+ redis_benchmarks_specification/__compare__/compare.py,sha256=brLymkKXa1ZzV--27LOFuzvFUQwGWKA-lKN7Bnbvlzg,57029
24
24
  redis_benchmarks_specification/__init__.py,sha256=YQIEx2sLPPA0JR9OuCuMNMNtm-f_gqDKgzvNJnkGNKY,491
25
25
  redis_benchmarks_specification/__runner__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
26
26
  redis_benchmarks_specification/__runner__/args.py,sha256=lYvbPd_3ppHZv4f2sRwXcF-fcBrwRSn3H2RMmNVkojY,7221
@@ -254,6 +254,7 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrb
254
254
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml,sha256=jU9FuUVTYNruLmBwS1GDA6oUzi8iBi5lgVOLJABTsew,707
255
255
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml,sha256=ocKvmopOhCmhyJm9RiTbVVS3gBA1ug63tMrDa0FApys,754
256
256
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml,sha256=4UnmF-vx8At2ah1YjFUMHgvXFpfi4EVVXsAWjN42M78,728
257
+ redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml,sha256=wKXG73RiNnIGKv_YCSvJ0jnKar7YjkRpvhnIOdK62cI,1100
257
258
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml,sha256=s1PLNH__vexG6bE-GL_xPAqVelupxY73AWWE5siYIYE,999
258
259
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml,sha256=bmFN61JPtQ6TWCGzUMmnhNcjgA5lMurAMlBSL9jBvX0,1035
259
260
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml,sha256=W_h2zXnSXLBfgXwyY2m0RowiWJUffHNRHMbmpnp7kAo,1030
@@ -345,8 +346,8 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed
345
346
  redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml,sha256=y8c0KsJ-SYmEfvW8m5rQg0hd9boh-FWkzAZTma4OYaI,734
346
347
  redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml,sha256=VIFNaaAqRQMeDvtXmKGDpJTnu658Lv5i_oAju5uSi_c,708
347
348
  redis_benchmarks_specification/test-suites/template.txt,sha256=d_edIE7Sxa5X7I2yG-Io0bPdbDIHR0oWFoCA3XUt_EU,435
348
- redis_benchmarks_specification-0.1.256.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
349
- redis_benchmarks_specification-0.1.256.dist-info/METADATA,sha256=0aGL9-HYDVTsuoE6fKAqfoVvAF4dsHAFsTrKb7rZ2BA,22726
350
- redis_benchmarks_specification-0.1.256.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
351
- redis_benchmarks_specification-0.1.256.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
352
- redis_benchmarks_specification-0.1.256.dist-info/RECORD,,
349
+ redis_benchmarks_specification-0.1.257.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
350
+ redis_benchmarks_specification-0.1.257.dist-info/METADATA,sha256=nqTiM_A0pnwYqWIIIPI3fQNvL6mx9cvKHQ4wXod8kYg,22726
351
+ redis_benchmarks_specification-0.1.257.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
352
+ redis_benchmarks_specification-0.1.257.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
353
+ redis_benchmarks_specification-0.1.257.dist-info/RECORD,,