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

Files changed (120) hide show
  1. redis_benchmarks_specification/__builder__/builder.py +130 -64
  2. redis_benchmarks_specification/__cli__/args.py +13 -1
  3. redis_benchmarks_specification/__cli__/cli.py +66 -3
  4. redis_benchmarks_specification/__common__/env.py +1 -1
  5. redis_benchmarks_specification/__common__/github.py +7 -11
  6. redis_benchmarks_specification/__common__/runner.py +15 -3
  7. redis_benchmarks_specification/__common__/timeseries.py +1551 -0
  8. redis_benchmarks_specification/__compare__/compare.py +123 -36
  9. redis_benchmarks_specification/__runner__/runner.py +20 -6
  10. redis_benchmarks_specification/__self_contained_coordinator__/args.py +0 -5
  11. redis_benchmarks_specification/__self_contained_coordinator__/build_info.py +5 -3
  12. redis_benchmarks_specification/__self_contained_coordinator__/docker.py +2 -2
  13. redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +4 -1
  14. redis_benchmarks_specification/__self_contained_coordinator__/runners.py +6 -2
  15. redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +153 -52
  16. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +1 -0
  17. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values.yml +1 -0
  18. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +1 -0
  19. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +1 -0
  20. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +1 -0
  21. redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +1 -0
  22. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +1 -0
  23. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +1 -0
  24. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +1 -0
  25. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +1 -0
  26. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +1 -0
  27. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +1 -0
  28. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +1 -0
  29. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +1 -0
  30. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +1 -0
  31. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +1 -0
  32. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +1 -0
  33. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +1 -0
  34. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +1 -0
  35. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +1 -0
  36. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +1 -0
  37. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +1 -0
  38. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +1 -0
  39. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +1 -0
  40. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +1 -0
  41. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +1 -0
  42. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +1 -0
  43. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +1 -0
  44. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +1 -0
  45. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +1 -0
  46. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +1 -0
  47. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +1 -0
  48. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +1 -0
  49. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +1 -0
  50. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +1 -0
  51. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +1 -0
  52. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +1 -0
  53. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +2 -5
  54. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +1 -0
  55. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +1 -0
  56. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +1 -0
  57. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-200KiB-values.yml +2 -5
  58. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +2 -5
  59. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-2MB-values.yml +2 -5
  60. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +1 -0
  61. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +1 -0
  62. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +1 -0
  63. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +1 -0
  64. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +1 -0
  65. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +1 -0
  66. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +1 -0
  67. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +1 -0
  68. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +1 -0
  69. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-200KiB.yml +1 -0
  70. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-20KiB.yml +1 -0
  71. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-2MB.yml +1 -0
  72. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +1 -0
  73. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +1 -0
  74. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +1 -0
  75. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +1 -0
  76. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +1 -0
  77. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +1 -0
  78. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +1 -0
  79. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +1 -0
  80. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +1 -0
  81. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +1 -0
  82. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +1 -0
  83. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +1 -0
  84. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +1 -0
  85. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +1 -0
  86. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +1 -0
  87. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +1 -0
  88. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +1 -0
  89. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +1 -0
  90. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +1 -0
  91. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +1 -0
  92. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +1 -0
  93. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +1 -0
  94. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +1 -0
  95. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +1 -0
  96. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +1 -0
  97. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +1 -0
  98. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +1 -0
  99. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +1 -0
  100. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +1 -0
  101. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +1 -0
  102. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +1 -0
  103. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +1 -0
  104. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +1 -0
  105. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +1 -0
  106. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +1 -0
  107. redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +1 -0
  108. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +1 -0
  109. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +1 -0
  110. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +1 -0
  111. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +1 -0
  112. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +1 -0
  113. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +1 -0
  114. redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +1 -0
  115. redis_benchmarks_specification/test-suites/template.txt +1 -0
  116. {redis_benchmarks_specification-0.1.208.dist-info → redis_benchmarks_specification-0.1.210.dist-info}/METADATA +12 -4
  117. {redis_benchmarks_specification-0.1.208.dist-info → redis_benchmarks_specification-0.1.210.dist-info}/RECORD +120 -119
  118. {redis_benchmarks_specification-0.1.208.dist-info → redis_benchmarks_specification-0.1.210.dist-info}/LICENSE +0 -0
  119. {redis_benchmarks_specification-0.1.208.dist-info → redis_benchmarks_specification-0.1.210.dist-info}/WHEEL +0 -0
  120. {redis_benchmarks_specification-0.1.208.dist-info → redis_benchmarks_specification-0.1.210.dist-info}/entry_points.txt +0 -0
@@ -16,6 +16,9 @@ import os
16
16
  from tqdm import tqdm
17
17
  import argparse
18
18
 
19
+ from io import StringIO
20
+ import sys
21
+
19
22
  from redis_benchmarks_specification.__common__.github import (
20
23
  update_comment_if_needed,
21
24
  create_new_pr_comment,
@@ -245,7 +248,6 @@ def compare_command_logic(args, project_name, project_version):
245
248
  testname_regex = args.testname_regex
246
249
  auto_approve = args.auto_approve
247
250
  running_platform = args.running_platform
248
- grafana_base_dashboard = args.grafana_base_dashboard
249
251
 
250
252
  if running_platform is not None:
251
253
  logging.info(
@@ -583,7 +585,11 @@ def compute_regression_table(
583
585
  )
584
586
  (
585
587
  detected_regressions,
586
- table,
588
+ table_full,
589
+ table_stable,
590
+ table_unstable,
591
+ table_improvements,
592
+ table_regressions,
587
593
  total_improvements,
588
594
  total_regressions,
589
595
  total_stable,
@@ -619,13 +625,60 @@ def compute_regression_table(
619
625
  baseline_str, comparison_str
620
626
  )
621
627
  )
622
- writer = MarkdownTableWriter(
623
- table_name="Comparison between {} and {}.\n\nTime Period from {}. (environment used: {})\n".format(
624
- baseline_str,
625
- comparison_str,
626
- from_human_str,
627
- baseline_deployment_name,
628
- ),
628
+
629
+ table_output = "# Comparison between {} and {}.\n\nTime Period from {}. (environment used: {})\n\n".format(
630
+ baseline_str,
631
+ comparison_str,
632
+ from_human_str,
633
+ baseline_deployment_name,
634
+ )
635
+
636
+ if total_regressions > 0:
637
+ old_stdout = sys.stdout
638
+ sys.stdout = mystdout = StringIO()
639
+ table_output += "#### Regressions Table\n\n"
640
+ writer_regressions = MarkdownTableWriter(
641
+ table_name="",
642
+ headers=[
643
+ "Test Case",
644
+ "Baseline {} (median obs. +- std.dev)".format(baseline_str),
645
+ "Comparison {} (median obs. +- std.dev)".format(comparison_str),
646
+ "% change ({})".format(metric_mode),
647
+ "Note",
648
+ ],
649
+ value_matrix=table_regressions,
650
+ )
651
+ writer_regressions.dump(mystdout, False)
652
+ table_output += mystdout.getvalue()
653
+ table_output += "\n\n"
654
+ mystdout.close()
655
+ sys.stdout = old_stdout
656
+
657
+ if total_improvements > 0:
658
+ old_stdout = sys.stdout
659
+ sys.stdout = mystdout = StringIO()
660
+ table_output += "#### Improvements Table\n\n"
661
+ writer_regressions = MarkdownTableWriter(
662
+ table_name="",
663
+ headers=[
664
+ "Test Case",
665
+ "Baseline {} (median obs. +- std.dev)".format(baseline_str),
666
+ "Comparison {} (median obs. +- std.dev)".format(comparison_str),
667
+ "% change ({})".format(metric_mode),
668
+ "Note",
669
+ ],
670
+ value_matrix=table_improvements,
671
+ )
672
+ writer_regressions.dump(mystdout, False)
673
+ table_output += mystdout.getvalue()
674
+ table_output += "\n\n"
675
+ mystdout.close()
676
+ sys.stdout = old_stdout
677
+
678
+ old_stdout = sys.stdout
679
+ sys.stdout = mystdout = StringIO()
680
+ writer_full = MarkdownTableWriter(
681
+ table_name="",
629
682
  headers=[
630
683
  "Test Case",
631
684
  "Baseline {} (median obs. +- std.dev)".format(baseline_str),
@@ -633,21 +686,15 @@ def compute_regression_table(
633
686
  "% change ({})".format(metric_mode),
634
687
  "Note",
635
688
  ],
636
- value_matrix=table,
689
+ value_matrix=table_full,
637
690
  )
638
- table_output = ""
639
-
640
- from io import StringIO
641
- import sys
642
-
643
- old_stdout = sys.stdout
644
- sys.stdout = mystdout = StringIO()
691
+ table_output += "<details>\n <summary>Full Results table:</summary>\n\n"
645
692
 
646
- writer.dump(mystdout, False)
693
+ writer_full.dump(mystdout, False)
647
694
 
648
695
  sys.stdout = old_stdout
649
-
650
- table_output = mystdout.getvalue()
696
+ table_output += mystdout.getvalue()
697
+ table_output += "\n</details>\n"
651
698
 
652
699
  return (
653
700
  detected_regressions,
@@ -742,7 +789,11 @@ def from_rts_to_regression_table(
742
789
  running_platform=None,
743
790
  ):
744
791
  print_all = print_regressions_only is False and print_improvements_only is False
745
- table = []
792
+ table_full = []
793
+ table_unstable = []
794
+ table_stable = []
795
+ table_regressions = []
796
+ table_improvements = []
746
797
  detected_regressions = []
747
798
  total_improvements = 0
748
799
  total_stable = 0
@@ -752,6 +803,10 @@ def from_rts_to_regression_table(
752
803
  noise_waterline = 3
753
804
  progress = tqdm(unit="benchmark time-series", total=len(test_names))
754
805
  for test_name in test_names:
806
+ compare_version = "v0.1.208"
807
+ github_link = "https://github.com/redis/redis-benchmarks-specification/blob"
808
+ test_path = f"redis_benchmarks_specification/test-suites/{test_name}.yml"
809
+ test_link = f"[{test_name}]({github_link}/{compare_version}/{test_path})"
755
810
  multi_value_baseline = check_multi_value_filter(baseline_str)
756
811
  multi_value_comparison = check_multi_value_filter(comparison_str)
757
812
 
@@ -940,6 +995,25 @@ def from_rts_to_regression_table(
940
995
  total_unstable += 1
941
996
 
942
997
  should_add_line = False
998
+ line = get_line(
999
+ baseline_v_str,
1000
+ comparison_v_str,
1001
+ note,
1002
+ percentage_change,
1003
+ test_link,
1004
+ )
1005
+ if detected_regression:
1006
+ table_regressions.append(line)
1007
+
1008
+ if detected_improvement:
1009
+ table_improvements.append(line)
1010
+
1011
+ if unstable:
1012
+ table_unstable.append(line)
1013
+ else:
1014
+ if not detected_regression and not detected_improvement:
1015
+ table_stable.append(line)
1016
+
943
1017
  if print_regressions_only and detected_regression:
944
1018
  should_add_line = True
945
1019
  if print_improvements_only and detected_improvement:
@@ -951,17 +1025,14 @@ def from_rts_to_regression_table(
951
1025
 
952
1026
  if should_add_line:
953
1027
  total_comparison_points = total_comparison_points + 1
954
- add_line(
955
- baseline_v_str,
956
- comparison_v_str,
957
- note,
958
- percentage_change,
959
- table,
960
- test_name,
961
- )
1028
+ table_full.append(line)
962
1029
  return (
963
1030
  detected_regressions,
964
- table,
1031
+ table_full,
1032
+ table_stable,
1033
+ table_unstable,
1034
+ table_improvements,
1035
+ table_regressions,
965
1036
  total_improvements,
966
1037
  total_regressions,
967
1038
  total_stable,
@@ -1037,6 +1108,23 @@ def get_test_names_from_db(rts, tags_regex_string, test_names, used_key):
1037
1108
  return test_names
1038
1109
 
1039
1110
 
1111
+ def get_line(
1112
+ baseline_v_str,
1113
+ comparison_v_str,
1114
+ note,
1115
+ percentage_change,
1116
+ test_name,
1117
+ ):
1118
+ percentage_change_str = "{:.1f}% ".format(percentage_change)
1119
+ return [
1120
+ test_name,
1121
+ baseline_v_str,
1122
+ comparison_v_str,
1123
+ percentage_change_str,
1124
+ note.strip(),
1125
+ ]
1126
+
1127
+
1040
1128
  def add_line(
1041
1129
  baseline_v_str,
1042
1130
  comparison_v_str,
@@ -1045,15 +1133,14 @@ def add_line(
1045
1133
  table,
1046
1134
  test_name,
1047
1135
  ):
1048
- percentage_change_str = "{:.1f}% ".format(percentage_change)
1049
1136
  table.append(
1050
- [
1051
- test_name,
1137
+ get_line(
1052
1138
  baseline_v_str,
1053
1139
  comparison_v_str,
1054
- percentage_change_str,
1055
- note.strip(),
1056
- ]
1140
+ note,
1141
+ percentage_change,
1142
+ test_name,
1143
+ )
1057
1144
  )
1058
1145
 
1059
1146
 
@@ -211,7 +211,7 @@ def prepare_memtier_benchmark_parameters(
211
211
  server,
212
212
  password,
213
213
  local_benchmark_output_filename,
214
- oss_cluster_api_enabled,
214
+ oss_cluster_api_enabled=False,
215
215
  tls_enabled=False,
216
216
  tls_skip_verify=False,
217
217
  tls_cert=None,
@@ -382,6 +382,7 @@ def process_self_contained_coordinator_stream(
382
382
  defaults_filename = args.defaults_filename
383
383
  override_test_runs = args.override_test_runs
384
384
  (
385
+ _,
385
386
  _,
386
387
  default_metrics,
387
388
  _,
@@ -396,7 +397,7 @@ def process_self_contained_coordinator_stream(
396
397
 
397
398
  with open(test_file, "r") as stream:
398
399
  _, benchmark_config, test_name = get_final_benchmark_config(
399
- None, stream, ""
400
+ None, None, stream, ""
400
401
  )
401
402
 
402
403
  if tls_enabled:
@@ -410,6 +411,7 @@ def process_self_contained_coordinator_stream(
410
411
  for topology_spec_name in benchmark_config["redis-topologies"]:
411
412
  test_result = False
412
413
  benchmark_tool_global = ""
414
+ full_result_path = None
413
415
  try:
414
416
  current_cpu_pos = args.cpuset_start_pos
415
417
  temporary_dir_client = tempfile.mkdtemp(dir=home)
@@ -756,7 +758,10 @@ def process_self_contained_coordinator_stream(
756
758
  profiler_frequency = 99
757
759
 
758
760
  # start the profile
759
- (profiler_name, profilers_map,) = profilers_start_if_required(
761
+ (
762
+ profiler_name,
763
+ profilers_map,
764
+ ) = profilers_start_if_required(
760
765
  profilers_enabled,
761
766
  profilers_list,
762
767
  redis_pids,
@@ -821,7 +826,10 @@ def process_self_contained_coordinator_stream(
821
826
  benchmark_end_time, benchmark_start_time
822
827
  )
823
828
  )
824
- (_, overall_tabular_data_map,) = profilers_stop_if_required(
829
+ (
830
+ _,
831
+ overall_tabular_data_map,
832
+ ) = profilers_stop_if_required(
825
833
  datasink_push_results_redistimeseries,
826
834
  benchmark_duration_seconds,
827
835
  collection_summary_str,
@@ -1067,7 +1075,10 @@ def print_results_table_stdout(
1067
1075
  cpu_usage=None,
1068
1076
  ):
1069
1077
  # check which metrics to extract
1070
- (_, metrics,) = merge_default_and_config_metrics(
1078
+ (
1079
+ _,
1080
+ metrics,
1081
+ ) = merge_default_and_config_metrics(
1071
1082
  benchmark_config,
1072
1083
  default_metrics,
1073
1084
  None,
@@ -1092,7 +1103,10 @@ def prepare_overall_total_test_results(
1092
1103
  benchmark_config, default_metrics, results_dict, test_name, overall_results_matrix
1093
1104
  ):
1094
1105
  # check which metrics to extract
1095
- (_, metrics,) = merge_default_and_config_metrics(
1106
+ (
1107
+ _,
1108
+ metrics,
1109
+ ) = merge_default_and_config_metrics(
1096
1110
  benchmark_config,
1097
1111
  default_metrics,
1098
1112
  None,
@@ -1,5 +1,4 @@
1
1
  import argparse
2
- import datetime
3
2
  import os
4
3
  from redis_benchmarks_specification.__common__.env import (
5
4
  MACHINE_CPU_COUNT,
@@ -20,10 +19,6 @@ from redis_benchmarks_specification.__common__.env import (
20
19
  PROFILERS_DEFAULT,
21
20
  ALLOWED_PROFILERS,
22
21
  )
23
- from redis_benchmarks_specification.__compare__.args import (
24
- START_TIME_NOW_UTC,
25
- START_TIME_LAST_SIX_MONTHS_UTC,
26
- )
27
22
 
28
23
  PERFORMANCE_GH_TOKEN = os.getenv("PERFORMANCE_GH_TOKEN", None)
29
24
 
@@ -10,11 +10,13 @@ def extract_build_info_from_streamdata(testDetails):
10
10
  arch = "amd64"
11
11
  use_git_timestamp = False
12
12
  git_timestamp_ms = None
13
- metadata = None
13
+ metadata = {}
14
14
  build_variant_name = None
15
15
  fields = [fieldname.decode() for fieldname in testDetails.keys()]
16
- logging.info("Fields on stream {}".format(fields))
17
- git_hash = testDetails[b"git_hash"]
16
+ logging.info("Fields on stream {}".format(testDetails))
17
+ git_hash = None
18
+ if b"git_hash" in testDetails:
19
+ git_hash = testDetails[b"git_hash"].decode()
18
20
  if b"use_git_timestamp" in testDetails:
19
21
  use_git_timestamp = bool(testDetails[b"use_git_timestamp"].decode())
20
22
  if b"git_timestamp_ms" in testDetails:
@@ -18,9 +18,9 @@ def generate_standalone_redis_server_args(
18
18
  "no",
19
19
  "--port",
20
20
  "{}".format(port),
21
- "--dir",
22
- dbdir,
23
21
  ]
22
+ if dbdir != "":
23
+ command.extend(["--dbdir", dbdir])
24
24
  if configuration_parameters is not None:
25
25
  for parameter, parameter_value in configuration_parameters.items():
26
26
  if parameter not in added_params:
@@ -43,7 +43,10 @@ def data_prepopulation_step(
43
43
  full_benchmark_path = "/usr/local/bin/{}".format(preload_tool)
44
44
  client_mnt_point = "/mnt/client/"
45
45
  if "memtier_benchmark" in preload_tool:
46
- (_, preload_command_str,) = prepare_memtier_benchmark_parameters(
46
+ (
47
+ _,
48
+ preload_command_str,
49
+ ) = prepare_memtier_benchmark_parameters(
47
50
  benchmark_config["dbconfig"]["preload_tool"],
48
51
  full_benchmark_path,
49
52
  port,
@@ -120,6 +120,7 @@ def process_self_contained_coordinator_stream(
120
120
  stream_id = "n/a"
121
121
  overall_result = False
122
122
  total_test_suite_runs = 0
123
+ full_result_path = None
123
124
  try:
124
125
  stream_id, testDetails = newTestInfo[0][1][0]
125
126
  stream_id = stream_id.decode()
@@ -163,7 +164,7 @@ def process_self_contained_coordinator_stream(
163
164
 
164
165
  with open(test_file, "r") as stream:
165
166
  result, benchmark_config, test_name = get_final_benchmark_config(
166
- None, stream, ""
167
+ None, None, stream, ""
167
168
  )
168
169
  if result is False:
169
170
  logging.error(
@@ -456,7 +457,10 @@ def process_self_contained_coordinator_stream(
456
457
  )
457
458
  r.shutdown(save=False)
458
459
 
459
- (_, overall_tabular_data_map,) = profilers_stop_if_required(
460
+ (
461
+ _,
462
+ overall_tabular_data_map,
463
+ ) = profilers_stop_if_required(
460
464
  datasink_push_results_redistimeseries,
461
465
  benchmark_duration_seconds,
462
466
  collection_summary_str,