redisbench-admin 0.11.19__tar.gz → 0.11.21__tar.gz

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.
Files changed (241) hide show
  1. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/PKG-INFO +2 -3
  2. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/pyproject.toml +2 -2
  3. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/args.py +0 -2
  4. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/compare.py +27 -45
  5. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/deploy.py +10 -5
  6. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/export.py +7 -1
  7. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/perf.py +24 -24
  8. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/args.py +11 -0
  9. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/common.py +57 -32
  10. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ftsb/ftsb.py +0 -1
  11. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ssh.py +0 -15
  12. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/async_terraform.py +10 -2
  13. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/render_files.py +3 -3
  14. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/args.py +2 -0
  15. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_db.py +6 -2
  16. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/run_local.py +18 -12
  17. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_env.py +12 -0
  18. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_helpers.py +0 -1
  19. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/run_remote.py +25 -18
  20. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/standalone.py +5 -6
  21. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/terraform.py +5 -1
  22. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/benchmark_config.py +0 -8
  23. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/remote.py +15 -56
  24. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/utils.py +7 -2
  25. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/watchdog/watchdog.py +8 -9
  26. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/LICENSE +0 -0
  27. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/README.md +0 -0
  28. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/__init__.py +0 -0
  29. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/cli.py +0 -0
  30. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/commands/__init__.py +0 -0
  31. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/commands/commands.json.py +0 -0
  32. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/__init__.py +0 -0
  33. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/__init__.py +0 -0
  34. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/args.py +0 -0
  35. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/__init__.py +0 -0
  36. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/oss_cluster.py +0 -0
  37. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/oss_standalone.py +0 -0
  38. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/__init__.py +0 -0
  39. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/args.py +0 -0
  40. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/common/__init__.py +0 -0
  41. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/common/common.py +0 -0
  42. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/google_benchmark/__init__.py +0 -0
  43. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/google_benchmark/google_benchmark_json_format.py +0 -0
  44. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/memtier_benchmark/__init__.py +0 -0
  45. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/memtier_benchmark/memtier_benchmark_json_format.py +0 -0
  46. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/pyperf/__init__.py +0 -0
  47. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/pyperf/pyperf_json_format.py +0 -0
  48. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/__init__.py +0 -0
  49. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/metrics_definition.py +0 -0
  50. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/redis_benchmark_csv_format.py +0 -0
  51. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/__init__.py +0 -0
  52. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/args.py +0 -0
  53. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/extract.py +0 -0
  54. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/__init__.py +0 -0
  55. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/app.py +0 -0
  56. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/args.py +0 -0
  57. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/grafana_api.py +0 -0
  58. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/__init__.py +0 -0
  59. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/daemon.py +0 -0
  60. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/flamegraph.pl +0 -0
  61. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/perf_daemon_caller.py +0 -0
  62. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/pprof.py +0 -0
  63. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers.py +0 -0
  64. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers_local.py +0 -0
  65. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers_schema.py +0 -0
  66. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/stackcollapse-perf.pl +0 -0
  67. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/vtune.py +0 -0
  68. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/__init__.py +0 -0
  69. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/aibench_run_inference_redisai_vision/__init__.py +0 -0
  70. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/aibench_run_inference_redisai_vision/aibench_run_inference_redisai_vision.py +0 -0
  71. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/__init__.py +0 -0
  72. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/ann.py +0 -0
  73. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.dockerignore +0 -0
  74. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.git +0 -0
  75. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.github/workflows/benchmarks.yml +0 -0
  76. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.gitignore +0 -0
  77. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/LICENSE +0 -0
  78. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/README.md +0 -0
  79. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/algos.yaml +0 -0
  80. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/algosP.yaml +0 -0
  81. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/__init__.py +0 -0
  82. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/__init__.py +0 -0
  83. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/annoy.py +0 -0
  84. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/balltree.py +0 -0
  85. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/base.py +0 -0
  86. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/bruteforce.py +0 -0
  87. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/ckdtree.py +0 -0
  88. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/datasketch.py +0 -0
  89. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/definitions.py +0 -0
  90. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/diskann.py +0 -0
  91. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dolphinnpy.py +0 -0
  92. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dummy_algo.py +0 -0
  93. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elasticsearch.py +0 -0
  94. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elastiknn.py +0 -0
  95. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss.py +0 -0
  96. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_gpu.py +0 -0
  97. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_hnsw.py +0 -0
  98. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/flann.py +0 -0
  99. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/hnswlib.py +0 -0
  100. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kdtree.py +0 -0
  101. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kgraph.py +0 -0
  102. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/lshf.py +0 -0
  103. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/milvus.py +0 -0
  104. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/mrpt.py +0 -0
  105. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/n2.py +0 -0
  106. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nearpy.py +0 -0
  107. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nmslib.py +0 -0
  108. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/onng_ngt.py +0 -0
  109. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/opensearchknn.py +0 -0
  110. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/panng_ngt.py +0 -0
  111. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pinecone.py +0 -0
  112. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/puffinn.py +0 -0
  113. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pynndescent.py +0 -0
  114. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/qg_ngt.py +0 -0
  115. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/redisearch.py +0 -0
  116. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/rpforest.py +0 -0
  117. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/scann.py +0 -0
  118. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/sptag.py +0 -0
  119. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/subprocess.py +0 -0
  120. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vald.py +0 -0
  121. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vecsim-hnsw.py +0 -0
  122. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vespa.py +0 -0
  123. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/constants.py +0 -0
  124. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/data.py +0 -0
  125. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/datasets.py +0 -0
  126. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/distance.py +0 -0
  127. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/main.py +0 -0
  128. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/__init__.py +0 -0
  129. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/metrics.py +0 -0
  130. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/plot_variants.py +0 -0
  131. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/utils.py +0 -0
  132. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/results.py +0 -0
  133. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/runner.py +0 -0
  134. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_dataset.py +0 -0
  135. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_hybrid_dataset.py +0 -0
  136. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_text_to_image_ds.py +0 -0
  137. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_website.py +0 -0
  138. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile +0 -0
  139. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.annoy +0 -0
  140. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.datasketch +0 -0
  141. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann +0 -0
  142. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann_pq +0 -0
  143. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.dolphinn +0 -0
  144. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.elasticsearch +0 -0
  145. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.elastiknn +0 -0
  146. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.faiss +0 -0
  147. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.flann +0 -0
  148. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.hnswlib +0 -0
  149. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.kgraph +0 -0
  150. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.mih +0 -0
  151. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.milvus +0 -0
  152. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.mrpt +0 -0
  153. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.n2 +0 -0
  154. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.nearpy +0 -0
  155. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.ngt +0 -0
  156. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.nmslib +0 -0
  157. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.opensearchknn +0 -0
  158. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.puffinn +0 -0
  159. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.pynndescent +0 -0
  160. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.redisearch +0 -0
  161. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.rpforest +0 -0
  162. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.scann +0 -0
  163. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.scipy +0 -0
  164. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.sklearn +0 -0
  165. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.sptag +0 -0
  166. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.vald +0 -0
  167. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.vespa +0 -0
  168. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install.py +0 -0
  169. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/logging.conf +0 -0
  170. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/multirun.py +0 -0
  171. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/plot.py +0 -0
  172. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/bf-runner +0 -0
  173. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/bf-runner.py +0 -0
  174. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-add-query-metric.md +0 -0
  175. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-batch-queries.md +0 -0
  176. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-prepared-queries.md +0 -0
  177. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-query-parameters.md +0 -0
  178. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/specification.md +0 -0
  179. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/requirements.txt +0 -0
  180. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/requirements_py38.txt +0 -0
  181. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/fashion-mnist-784-euclidean.png +0 -0
  182. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/gist-960-euclidean.png +0 -0
  183. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/glove-100-angular.png +0 -0
  184. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/glove-25-angular.png +0 -0
  185. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/lastfm-64-dot.png +0 -0
  186. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/mnist-784-euclidean.png +0 -0
  187. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/nytimes-256-angular.png +0 -0
  188. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/sift-128-euclidean.png +0 -0
  189. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/run.py +0 -0
  190. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/run_algorithm.py +0 -0
  191. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/chartjs.template +0 -0
  192. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/detail_page.html +0 -0
  193. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/general.html +0 -0
  194. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/latex.template +0 -0
  195. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/summary.html +0 -0
  196. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/__init__.py +0 -0
  197. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/test-jaccard.py +0 -0
  198. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/test-metrics.py +0 -0
  199. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/cluster.py +0 -0
  200. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ftsb/__init__.py +0 -0
  201. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/git.py +0 -0
  202. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/grafana.py +0 -0
  203. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/memtier_benchmark/__init__.py +0 -0
  204. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/memtier_benchmark/memtier_benchmark.py +0 -0
  205. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/metrics.py +0 -0
  206. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/modules.py +0 -0
  207. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redis_benchmark/__init__.py +0 -0
  208. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redis_benchmark/redis_benchmark.py +0 -0
  209. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redisgraph_benchmark_go/__init__.py +0 -0
  210. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py +0 -0
  211. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redistimeseries.py +0 -0
  212. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/run.py +0 -0
  213. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/s3.py +0 -0
  214. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py +0 -0
  215. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/tsbs_run_queries_redistimeseries/tsbs_run_queries_redistimeseries.py +0 -0
  216. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ycsb/__init__.py +0 -0
  217. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ycsb/ycsb.py +0 -0
  218. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/__init__.py +0 -0
  219. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/async_env.py +0 -0
  220. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/benchmark.py +0 -0
  221. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/log.py +0 -0
  222. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/run_async.py +0 -0
  223. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/__init__.py +0 -0
  224. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_client.py +0 -0
  225. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_helpers.py +0 -0
  226. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/__init__.py +0 -0
  227. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/args.py +0 -0
  228. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/consts.py +0 -0
  229. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/log.py +0 -0
  230. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/notifications.py +0 -0
  231. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_client.py +0 -0
  232. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_db.py +0 -0
  233. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_failures.py +0 -0
  234. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/__init__.py +0 -0
  235. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/local.py +0 -0
  236. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/redisearch.py +0 -0
  237. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/redisgraph_benchmark_go.py +0 -0
  238. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/results.py +0 -0
  239. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/ssh.py +0 -0
  240. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/watchdog/__init__.py +0 -0
  241. {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/watchdog/args.py +0 -0
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redisbench-admin
3
- Version: 0.11.19
3
+ Version: 0.11.21
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
7
- Requires-Python: >=3.9.0,<4.0.0
7
+ Requires-Python: >=3.10.0,<4.0.0
8
8
  Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.9
10
9
  Classifier: Programming Language :: Python :: 3.10
11
10
  Classifier: Programming Language :: Python :: 3.11
12
11
  Classifier: Programming Language :: Python :: 3.12
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redisbench-admin"
3
- version = "0.11.19"
3
+ version = "0.11.21"
4
4
  description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
5
5
  authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
6
6
  readme = "README.md"
@@ -10,7 +10,7 @@ redisbench-admin = "redisbench_admin.cli:main"
10
10
  perf-daemon = "redisbench_admin.profilers.daemon:main"
11
11
 
12
12
  [tool.poetry.dependencies]
13
- python = "^3.9.0"
13
+ python = "^3.10.0"
14
14
  humanize = "^2.4.0"
15
15
  requests = "^2.32.3"
16
16
  py_cpuinfo = "^5.0.0"
@@ -53,8 +53,6 @@ def create_compare_arguments(parser):
53
53
  parser.add_argument("--deployment_type", type=str, default="oss-standalone")
54
54
  parser.add_argument("--baseline_deployment_name", type=str, default="")
55
55
  parser.add_argument("--comparison_deployment_name", type=str, default="")
56
- parser.add_argument("--baseline_github_org", type=str, default=GITHUB_ORG)
57
- parser.add_argument("--comparison_github_org", type=str, default=GITHUB_ORG)
58
56
  parser.add_argument("--metric_name", type=str, default=None)
59
57
  parser.add_argument("--running_platform", type=str, default=None)
60
58
  parser.add_argument("--extra-filter", type=str, default=None)
@@ -166,8 +166,6 @@ def compare_command_logic(args, project_name, project_version):
166
166
  auto_approve = args.auto_approve
167
167
  running_platform = args.running_platform
168
168
  grafana_base_dashboard = args.grafana_base_dashboard
169
- baseline_github_org = args.baseline_github_org
170
- comparison_github_org = args.comparison_github_org
171
169
  # using an access token
172
170
  is_actionable_pr = False
173
171
  contains_regression_comment = False
@@ -193,38 +191,32 @@ def compare_command_logic(args, project_name, project_version):
193
191
  logging.info("Detected github token")
194
192
  g = Github(github_token)
195
193
  if pull_request is not None and pull_request != "":
196
- try:
197
- pull_request_n = int(pull_request)
198
- github_pr = (
199
- g.get_user(tf_github_org)
200
- .get_repo(tf_github_repo)
201
- .get_issue(pull_request_n)
202
- )
203
- comments = github_pr.get_comments()
204
- pr_link = github_pr.html_url
205
- logging.info("Working on github PR already: {}".format(pr_link))
206
- is_actionable_pr = True
207
- contains_regression_comment, pos = check_regression_comment(comments)
208
- if contains_regression_comment:
209
- regression_comment = comments[pos]
210
- old_regression_comment_body = regression_comment.body
211
- logging.info(
212
- "Already contains regression comment. Link: {}".format(
213
- regression_comment.html_url
214
- )
194
+ pull_request_n = int(pull_request)
195
+ github_pr = (
196
+ g.get_user(tf_github_org)
197
+ .get_repo(tf_github_repo)
198
+ .get_issue(pull_request_n)
199
+ )
200
+ comments = github_pr.get_comments()
201
+ pr_link = github_pr.html_url
202
+ logging.info("Working on github PR already: {}".format(pr_link))
203
+ is_actionable_pr = True
204
+ contains_regression_comment, pos = check_regression_comment(comments)
205
+ if contains_regression_comment:
206
+ regression_comment = comments[pos]
207
+ old_regression_comment_body = regression_comment.body
208
+ logging.info(
209
+ "Already contains regression comment. Link: {}".format(
210
+ regression_comment.html_url
215
211
  )
216
- if verbose:
217
- logging.info("Printing old regression comment:")
218
- print("".join(["-" for x in range(1, 80)]))
219
- print(regression_comment.body)
220
- print("".join(["-" for x in range(1, 80)]))
221
- else:
222
- logging.info("Does not contain regression comment")
223
-
224
- except Exception as e:
225
- logging.error(
226
- f"Error while working with github. exception {e.__str__()}"
227
212
  )
213
+ if verbose:
214
+ logging.info("Printing old regression comment:")
215
+ print("".join(["-" for x in range(1, 80)]))
216
+ print(regression_comment.body)
217
+ print("".join(["-" for x in range(1, 80)]))
218
+ else:
219
+ logging.info("Does not contain regression comment")
228
220
 
229
221
  grafana_dashboards_uids = {
230
222
  "redisgraph": "SH9_rQYGz",
@@ -282,8 +274,6 @@ def compare_command_logic(args, project_name, project_version):
282
274
  to_ts_ms,
283
275
  use_metric_context_path,
284
276
  running_platform,
285
- baseline_github_org,
286
- comparison_github_org,
287
277
  )
288
278
  comment_body = ""
289
279
  if total_comparison_points > 0:
@@ -508,8 +498,6 @@ def compute_regression_table(
508
498
  to_ts_ms=None,
509
499
  use_metric_context_path=None,
510
500
  running_platform=None,
511
- baseline_github_org="",
512
- comparison_github_org="",
513
501
  ):
514
502
  START_TIME_NOW_UTC, _, _ = get_start_time_vars()
515
503
  START_TIME_LAST_MONTH_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=31)
@@ -595,8 +583,6 @@ def compute_regression_table(
595
583
  test_names,
596
584
  tf_triggering_env,
597
585
  verbose,
598
- baseline_github_org,
599
- comparison_github_org,
600
586
  running_platform,
601
587
  )
602
588
  logging.info(
@@ -667,7 +653,7 @@ def get_by_strings(
667
653
  comparison_str = comparison_branch
668
654
 
669
655
  if baseline_tag is not None:
670
- if baseline_covered:
656
+ if comparison_covered:
671
657
  logging.error(
672
658
  "--baseline-branch and --baseline-tag are mutually exclusive. Pick one..."
673
659
  )
@@ -724,8 +710,6 @@ def from_rts_to_regression_table(
724
710
  test_names,
725
711
  tf_triggering_env,
726
712
  verbose,
727
- baseline_github_org="",
728
- comparison_github_org="",
729
713
  running_platform=None,
730
714
  ):
731
715
  print_all = print_regressions_only is False and print_improvements_only is False
@@ -748,7 +732,6 @@ def from_rts_to_regression_table(
748
732
  "{}={}".format(test_filter, test_name),
749
733
  "deployment_name={}".format(baseline_deployment_name),
750
734
  "triggering_env={}".format(tf_triggering_env),
751
- "github_org={}".format(baseline_github_org),
752
735
  ]
753
736
  if running_platform is not None:
754
737
  filters_baseline.append("running_platform={}".format(running_platform))
@@ -758,7 +741,6 @@ def from_rts_to_regression_table(
758
741
  "{}={}".format(test_filter, test_name),
759
742
  "deployment_name={}".format(comparison_deployment_name),
760
743
  "triggering_env={}".format(tf_triggering_env),
761
- "github_org={}".format(comparison_github_org),
762
744
  ]
763
745
  if running_platform is not None:
764
746
  filters_comparison.append("running_platform={}".format(running_platform))
@@ -1061,9 +1043,9 @@ def get_v_pct_change_and_largest_var(
1061
1043
  if last_n < 0 or (last_n > 0 and len(comparison_values) < last_n):
1062
1044
  comparison_values.append(tuple[1])
1063
1045
  comparison_df = pd.DataFrame(comparison_values)
1064
- comparison_median = float(comparison_df.median().iloc[0])
1046
+ comparison_median = float(comparison_df.median())
1065
1047
  comparison_v = comparison_median
1066
- comparison_std = float(comparison_df.std().iloc[0])
1048
+ comparison_std = float(comparison_df.std())
1067
1049
  if verbose:
1068
1050
  logging.info(
1069
1051
  "comparison_datapoints: {} value: {}; std-dev: {}; median: {}".format(
@@ -69,13 +69,19 @@ def deploy_command_logic(args, project_name, project_version):
69
69
  )
70
70
  tf_setup_name_sufix = "{}-{}".format(args.setup_name_sufix, tf_github_sha)
71
71
  tf_setup_name = "{}{}".format(remote_setup, tf_setup_name_sufix)
72
- terraform_backend_key = "benchmarks/infrastructure/{}.tfstate".format(
73
- tf_setup_name
74
- ).replace("/", "-")
72
+ terraform_backend_key = "benchmarks/infrastructure/{}.tfstate".format(tf_setup_name)
75
73
  tf_triggering_env = "redisbench-admin-deploy"
76
74
  logging.info("Setting an infra timeout of {} secs".format(infra_timeout_secs))
77
75
  if args.destroy is False:
78
- (tf_return_code, _, _, _, _, _, _,) = setup_remote_environment(
76
+ (
77
+ tf_return_code,
78
+ _,
79
+ _,
80
+ _,
81
+ _,
82
+ _,
83
+ _,
84
+ ) = setup_remote_environment(
79
85
  tf,
80
86
  tf_github_sha,
81
87
  tf_github_actor,
@@ -103,7 +109,6 @@ def deploy_command_logic(args, project_name, project_version):
103
109
  _, _, _ = tf.init(
104
110
  capture_output=True,
105
111
  backend_config={"key": terraform_backend_key},
106
- reconfigure=True,
107
112
  )
108
113
  logging.info("Refreshing remote state")
109
114
  _, _, _ = tf.refresh()
@@ -42,7 +42,13 @@ def export_command_logic(args, project_name, project_version):
42
42
  deployment_name = args.deployment_name
43
43
  deployment_type = args.deployment_type
44
44
  results_format = args.results_format
45
- (_, github_branch, github_org, github_repo, _,) = git_vars_crosscheck(
45
+ (
46
+ _,
47
+ github_branch,
48
+ github_org,
49
+ github_repo,
50
+ _,
51
+ ) = git_vars_crosscheck(
46
52
  None, args.github_branch, args.github_org, args.github_repo, None
47
53
  )
48
54
  exporter_timemetric_path = None
@@ -400,9 +400,9 @@ class Perf:
400
400
  "Main THREAD Flame Graph: " + use_case, details
401
401
  )
402
402
  if artifact_result is True:
403
- outputs[
404
- "Main THREAD Flame Graph {}".format(identifier)
405
- ] = flame_graph_output
403
+ outputs["Main THREAD Flame Graph {}".format(identifier)] = (
404
+ flame_graph_output
405
+ )
406
406
  result &= artifact_result
407
407
 
408
408
  tid = self.pid
@@ -440,9 +440,9 @@ class Perf:
440
440
  )
441
441
 
442
442
  if artifact_result is True:
443
- outputs[
444
- "perf report per dso,sym {}".format(identifier)
445
- ] = perf_report_artifact
443
+ outputs["perf report per dso,sym {}".format(identifier)] = (
444
+ perf_report_artifact
445
+ )
446
446
  result &= artifact_result
447
447
 
448
448
  # generate perf report per dso,sym
@@ -460,9 +460,9 @@ class Perf:
460
460
  )
461
461
 
462
462
  if artifact_result is True:
463
- outputs[
464
- "perf report per dso,sym with callgraph {}".format(identifier)
465
- ] = perf_report_artifact
463
+ outputs["perf report per dso,sym with callgraph {}".format(identifier)] = (
464
+ perf_report_artifact
465
+ )
466
466
  result &= artifact_result
467
467
 
468
468
  # generate perf report per dso,sym,srcline
@@ -487,9 +487,9 @@ class Perf:
487
487
  )
488
488
 
489
489
  if artifact_result is True:
490
- outputs[
491
- "perf report per dso,sym,srcline {}".format(identifier)
492
- ] = perf_report_artifact
490
+ outputs["perf report per dso,sym,srcline {}".format(identifier)] = (
491
+ perf_report_artifact
492
+ )
493
493
  result &= artifact_result
494
494
 
495
495
  self.logger.info(
@@ -527,9 +527,9 @@ class Perf:
527
527
  )
528
528
 
529
529
  if artifact_result is True:
530
- outputs[
531
- "perf report top self-cpu {}".format(identifier)
532
- ] = perf_report_artifact
530
+ outputs["perf report top self-cpu {}".format(identifier)] = (
531
+ perf_report_artifact
532
+ )
533
533
  result &= artifact_result
534
534
 
535
535
  # generate perf report --stdio report
@@ -546,9 +546,9 @@ class Perf:
546
546
  )
547
547
 
548
548
  if artifact_result is True:
549
- outputs[
550
- "perf report top self-cpu (dso={})".format(binary)
551
- ] = perf_report_artifact
549
+ outputs["perf report top self-cpu (dso={})".format(binary)] = (
550
+ perf_report_artifact
551
+ )
552
552
  result &= artifact_result
553
553
 
554
554
  if self.callgraph_mode == "dwarf":
@@ -590,9 +590,9 @@ class Perf:
590
590
  )
591
591
  result &= artifact_result
592
592
  if artifact_result is True:
593
- outputs[
594
- "Top entries in text form by LOC"
595
- ] = pprof_artifact_text_output
593
+ outputs["Top entries in text form by LOC"] = (
594
+ pprof_artifact_text_output
595
+ )
596
596
  tabular_data_map["text-lines"] = tabular_data
597
597
  self.logger.info("Generating pprof png output")
598
598
  pprof_png_output = self.output + ".pprof.png"
@@ -604,9 +604,9 @@ class Perf:
604
604
  self.output,
605
605
  )
606
606
  if artifact_result is True:
607
- outputs[
608
- "Output graph image in PNG format"
609
- ] = pprof_artifact_png_output
607
+ outputs["Output graph image in PNG format"] = (
608
+ pprof_artifact_png_output
609
+ )
610
610
  result &= artifact_result
611
611
 
612
612
  # save stack collapsed
@@ -44,9 +44,20 @@ KEEP_ENV = bool(int(os.getenv("KEEP_ENV", "0")))
44
44
  ALLOWED_TOOLS_DEFAULT = "memtier_benchmark,redis-benchmark,redisgraph-benchmark-go,ycsb,go-ycsb,tsbs_run_queries_redistimeseries,tsbs_load_redistimeseries,ftsb_redisearch,aibench_run_inference_redisai_vision,ann-benchmarks"
45
45
  ALLOWED_BENCH_TOOLS = os.getenv("ALLOWED_BENCH_TOOLS", ALLOWED_TOOLS_DEFAULT)
46
46
  SKIP_DB_SETUP = bool(int(os.getenv("SKIP_DB_SETUP", "0")))
47
+ ARCH_X86 = "x86_64"
48
+ ARCH_ARM = "aarch64"
49
+ VALID_ARCHS = [ARCH_X86, ARCH_ARM]
50
+ ARCH = os.getenv("ARCH", ARCH_X86)
47
51
 
48
52
 
49
53
  def common_run_args(parser):
54
+ parser.add_argument(
55
+ "--architecture",
56
+ type=str,
57
+ required=False,
58
+ default=ARCH,
59
+ help=f"Architecture to run the benchmark on. One of {VALID_ARCHS}.",
60
+ )
50
61
  parser.add_argument(
51
62
  "--keep_env_and_topo",
52
63
  required=False,
@@ -206,7 +206,10 @@ def prepare_benchmark_parameters_specif_tooling(
206
206
  if isremote is True:
207
207
  benchmark_tool = "/tmp/{}".format(benchmark_tool)
208
208
  input_data_file = "/tmp/input.data"
209
- (command_arr, command_str,) = prepare_tsbs_benchmark_command(
209
+ (
210
+ command_arr,
211
+ command_str,
212
+ ) = prepare_tsbs_benchmark_command(
210
213
  benchmark_tool,
211
214
  server_private_ip,
212
215
  server_plaintext_port,
@@ -218,7 +221,10 @@ def prepare_benchmark_parameters_specif_tooling(
218
221
  cluster_api_enabled,
219
222
  )
220
223
  if "memtier_benchmark" in benchmark_tool:
221
- (command_arr, command_str,) = prepare_memtier_benchmark_command(
224
+ (
225
+ command_arr,
226
+ command_str,
227
+ ) = prepare_memtier_benchmark_command(
222
228
  benchmark_tool,
223
229
  server_private_ip,
224
230
  server_plaintext_port,
@@ -236,7 +242,10 @@ def prepare_benchmark_parameters_specif_tooling(
236
242
  ann_path = stdout[0].strip() + "/run/ann/pkg/multirun.py"
237
243
  logging.info("Remote ann-benchmark path: {}".format(ann_path))
238
244
 
239
- (command_arr, command_str,) = prepare_ann_benchmark_command(
245
+ (
246
+ command_arr,
247
+ command_str,
248
+ ) = prepare_ann_benchmark_command(
240
249
  server_private_ip,
241
250
  server_plaintext_port,
242
251
  cluster_api_enabled,
@@ -250,7 +259,10 @@ def prepare_benchmark_parameters_specif_tooling(
250
259
  if isremote is True:
251
260
  benchmark_tool = "/tmp/{}".format(benchmark_tool)
252
261
  input_data_file = "/tmp/input.data"
253
- (command_arr, command_str,) = prepare_ftsb_benchmark_command(
262
+ (
263
+ command_arr,
264
+ command_str,
265
+ ) = prepare_ftsb_benchmark_command(
254
266
  benchmark_tool,
255
267
  server_private_ip,
256
268
  server_plaintext_port,
@@ -267,7 +279,10 @@ def prepare_benchmark_parameters_specif_tooling(
267
279
  if isremote is True:
268
280
  benchmark_tool = "/tmp/{}".format(benchmark_tool)
269
281
  input_data_file = "/tmp/input.data"
270
- (command_arr, command_str,) = prepare_aibench_benchmark_command(
282
+ (
283
+ command_arr,
284
+ command_str,
285
+ ) = prepare_aibench_benchmark_command(
271
286
  benchmark_tool,
272
287
  server_private_ip,
273
288
  server_plaintext_port,
@@ -619,11 +634,9 @@ def run_redis_pre_steps(benchmark_config, r, required_modules):
619
634
  )
620
635
  search_specific_init(r, module_names)
621
636
  if required_modules is not None and len(required_modules) > 0:
622
- artifact_pos = check_required_modules(module_names, required_modules)
623
- version = artifact_versions[artifact_pos]
624
- logging.info(
625
- f"Using version {version} in by version timeseries coming from {module_names[artifact_pos]}"
626
- )
637
+ check_required_modules(module_names, required_modules)
638
+
639
+ version = artifact_versions[0]
627
640
  else:
628
641
  version = r.info("server")["redis_version"]
629
642
 
@@ -689,45 +702,54 @@ def dso_check(dso, local_module_file):
689
702
 
690
703
 
691
704
  def dbconfig_keyspacelen_check(
692
- benchmark_config, redis_conns, ignore_keyspace_errors=False
705
+ benchmark_config, redis_conns, ignore_keyspace_errors=False, timeout=60
693
706
  ):
694
- result = True
707
+ start_time = time.time()
695
708
  (
696
709
  requires_keyspacelen_check,
697
710
  keyspacelen,
698
711
  ) = check_dbconfig_keyspacelen_requirement(benchmark_config)
699
- if requires_keyspacelen_check:
700
- result = False
712
+
713
+ if not requires_keyspacelen_check:
714
+ return True
715
+
716
+ attempt = 0
717
+ while time.time() - start_time < timeout:
701
718
  logging.info(
702
- "Ensuring keyspace length requirement = {} is met.".format(keyspacelen)
719
+ f"Ensuring keyspace length requirement = {keyspacelen} is met. attempt #{attempt+1}"
703
720
  )
704
721
  total_keys = 0
705
722
  for shard_conn in redis_conns:
706
723
  keyspace_dict = shard_conn.info("keyspace")
707
724
  for _, dbdict in keyspace_dict.items():
708
- shard_keys = dbdict["keys"]
709
- total_keys += shard_keys
725
+ total_keys += dbdict.get("keys", 0)
710
726
 
711
727
  if total_keys == keyspacelen:
712
728
  logging.info(
713
- "The total numbers of keys in setup matches the expected spec: {}=={}".format(
729
+ "The total number of keys in setup matches the expected spec: {} == {}".format(
714
730
  keyspacelen, total_keys
715
731
  )
716
732
  )
717
- result = True
718
- else:
719
- logging.error(
720
- "The total numbers of keys in setup does not match the expected spec: {}!={}. Aborting...".format(
721
- keyspacelen, total_keys
722
- )
733
+ return True
734
+
735
+ logging.warning(
736
+ "Keyspace length mismatch ({} != {}). Retrying in {} seconds...".format(
737
+ total_keys, keyspacelen, 2**attempt
723
738
  )
724
- if ignore_keyspace_errors is False:
725
- raise Exception(
726
- "The total numbers of keys in setup does not match the expected spec: {}!={}. Aborting...".format(
727
- keyspacelen, total_keys
728
- )
729
- )
730
- return result
739
+ )
740
+ time.sleep(2**attempt) # Exponential backoff
741
+ attempt += 1
742
+
743
+ logging.error(
744
+ f"The total number of keys in setup does not match the expected spec: {keyspacelen} != {total_keys}. Aborting after {attempt+1} tries..."
745
+ )
746
+
747
+ if not ignore_keyspace_errors:
748
+ raise Exception(
749
+ f"The total number of keys in setup does not match the expected spec: {keyspacelen} != {total_keys}. Aborting after {attempt+1} tries..."
750
+ )
751
+
752
+ return False
731
753
 
732
754
 
733
755
  def common_properties_log(
@@ -765,7 +787,10 @@ def print_results_table_stdout(
765
787
  metric_names=[],
766
788
  ):
767
789
  # check which metrics to extract
768
- (_, metrics,) = merge_default_and_config_metrics(
790
+ (
791
+ _,
792
+ metrics,
793
+ ) = merge_default_and_config_metrics(
769
794
  benchmark_config,
770
795
  default_metrics,
771
796
  None,
@@ -29,7 +29,6 @@ def prepare_ftsb_benchmark_command(
29
29
  :return: [string] containing the required command to run the benchmark given the configurations
30
30
  """
31
31
  command_arr = [executable_path]
32
-
33
32
  command_arr.extend(
34
33
  ["--host", "{}:{}".format(server_private_ip, server_plaintext_port)]
35
34
  )
@@ -42,7 +42,6 @@ def ssh_tunnel_redisconn(
42
42
  ), # remote redis server
43
43
  # Bind the socket to port 0. A random free port from 1024 to 65535 will be selected.
44
44
  local_bind_address=("0.0.0.0", 0), # enable local forwarding port
45
- set_keepalive=60,
46
45
  )
47
46
  ssh_tunel.start() # start tunnel
48
47
  redis_conn = redis.Redis(
@@ -70,19 +69,6 @@ def check_connection(ssh_conn):
70
69
  return False
71
70
 
72
71
 
73
- def ensure_400_permissions(file_path):
74
- import stat
75
-
76
- file_stat = os.stat(file_path)
77
- current_permissions = stat.S_IMODE(file_stat.st_mode)
78
-
79
- if current_permissions != 0o400:
80
- logging.info(f"Changing permissions of {file_path} to 400")
81
- os.chmod(file_path, 0o400)
82
- else:
83
- logging.info(f"{file_path} already has 400 permissions.")
84
-
85
-
86
72
  def ssh_pem_check(EC2_PRIVATE_PEM, private_key):
87
73
  if os.path.exists(private_key) is False:
88
74
  if EC2_PRIVATE_PEM is not None and EC2_PRIVATE_PEM != "":
@@ -103,4 +89,3 @@ def ssh_pem_check(EC2_PRIVATE_PEM, private_key):
103
89
  logging.info(
104
90
  "Confirmed that private key path artifact: '{}' exists!".format(private_key)
105
91
  )
106
- ensure_400_permissions(private_key)
@@ -114,7 +114,11 @@ class TerraformClass:
114
114
  def async_runner_setup(
115
115
  self,
116
116
  ):
117
- (remote_setup, deployment_type, remote_id,) = fetch_remote_setup_from_config(
117
+ (
118
+ remote_setup,
119
+ deployment_type,
120
+ remote_id,
121
+ ) = fetch_remote_setup_from_config(
118
122
  [{"type": "async", "setup": "runner"}],
119
123
  "https://github.com/RedisLabsModules/testing-infrastructure.git",
120
124
  "master",
@@ -229,7 +233,11 @@ def terraform_spin_or_reuse_env(
229
233
  tf_override_name=None,
230
234
  tf_folder_path=None,
231
235
  ):
232
- (remote_setup, deployment_type, remote_id,) = fetch_remote_setup_from_config(
236
+ (
237
+ remote_setup,
238
+ deployment_type,
239
+ remote_id,
240
+ ) = fetch_remote_setup_from_config(
233
241
  benchmark_config["remote"],
234
242
  "https://github.com/RedisLabsModules/testing-infrastructure.git",
235
243
  "master",
@@ -28,9 +28,9 @@ WantedBy=multi-user.target
28
28
  argv.append("--private_key")
29
29
  argv.append("/home/ubuntu/work_dir/tests/benchmarks/benchmarks.redislabs.pem")
30
30
  else:
31
- argv[
32
- argv.index(args.private_key)
33
- ] = "/home/ubuntu/work_dir/tests/benchmarks/benchmarks.redislabs.pem"
31
+ argv[argv.index(args.private_key)] = (
32
+ "/home/ubuntu/work_dir/tests/benchmarks/benchmarks.redislabs.pem"
33
+ )
34
34
  if len(args.module_path) != 0:
35
35
  argv[argv.index(args.module_path[0])] = (
36
36
  "/home/ubuntu/work_dir/tests/benchmarks/"
@@ -12,6 +12,7 @@ FLUSHALL_AT_START = bool(int(os.getenv("FLUSHALL_AT_START", "1")))
12
12
  IGNORE_KEYSPACE_ERRORS = bool(int(os.getenv("IGNORE_KEYSPACE_ERRORS", "0")))
13
13
  SKIP_REDIS_SPIN = bool(int(os.getenv("SKIP_REDIS_SPIN", "0")))
14
14
  REDIS_PORT = int(os.getenv("REDIS_PORT", "6379"))
15
+ REDIS_AUTH = os.getenv("REDIS_AUTH", None)
15
16
  REDIS_HOST = os.getenv("REDIS_HOST", "127.0.0.1")
16
17
 
17
18
 
@@ -19,6 +20,7 @@ def create_run_local_arguments(parser):
19
20
  parser = common_run_args(parser)
20
21
  parser.add_argument("--port", type=int, default=REDIS_PORT)
21
22
  parser.add_argument("--host", type=str, default=REDIS_HOST)
23
+ parser.add_argument("--password", type=str, default=REDIS_AUTH)
22
24
  parser.add_argument("--redis-binary", type=str, default=REDIS_BINARY)
23
25
  parser.add_argument(
24
26
  "--flushall_on_every_test_start",
@@ -158,7 +158,7 @@ def local_db_spin(
158
158
  logging.info("Skipping DB spin step...")
159
159
 
160
160
  if setup_type == "oss-standalone":
161
- r = redis.Redis(port=args.port, host=args.host)
161
+ r = redis.Redis(port=args.port, host=args.host, password=args.password)
162
162
  r.ping()
163
163
  r.client_setname("redisbench-admin-standalone")
164
164
  redis_conns.append(r)
@@ -192,6 +192,11 @@ def local_db_spin(
192
192
  benchmark_tool_workdir,
193
193
  cluster_api_enabled,
194
194
  "dbconfig",
195
+ None,
196
+ None,
197
+ None,
198
+ None,
199
+ args.password,
195
200
  )
196
201
 
197
202
  # run the benchmark
@@ -206,7 +211,6 @@ def local_db_spin(
206
211
  load_via_benchmark_duration_seconds
207
212
  )
208
213
  )
209
-
210
214
  dbconfig_keyspacelen_check(benchmark_config, redis_conns, ignore_keyspace_errors)
211
215
 
212
216
  artifact_version = run_redis_pre_steps(