redisbench-admin 0.11.39__tar.gz → 0.11.40__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.39 → redisbench_admin-0.11.40}/PKG-INFO +8 -2
  2. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/README.md +7 -1
  3. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/pyproject.toml +4 -1
  4. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/compare/args.py +4 -0
  5. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/compare/compare.py +19 -16
  6. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/deploy/deploy.py +9 -1
  7. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/environments/oss_cluster.py +37 -0
  8. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/export.py +7 -1
  9. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/perf.py +24 -24
  10. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/common.py +24 -6
  11. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/metrics.py +0 -2
  12. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/async_terraform.py +10 -2
  13. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/render_files.py +3 -3
  14. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/args.py +12 -0
  15. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/run_local.py +120 -63
  16. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/args.py +12 -0
  17. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/remote_helpers.py +5 -1
  18. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/run_remote.py +69 -12
  19. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/terraform.py +5 -1
  20. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/remote.py +35 -4
  21. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/LICENSE +0 -0
  22. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/__init__.py +0 -0
  23. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/cli.py +0 -0
  24. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/commands/__init__.py +0 -0
  25. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/commands/commands.json.py +0 -0
  26. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/compare/__init__.py +0 -0
  27. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/deploy/__init__.py +0 -0
  28. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/deploy/args.py +0 -0
  29. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/environments/__init__.py +0 -0
  30. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/environments/oss_standalone.py +0 -0
  31. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/__init__.py +0 -0
  32. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/args.py +0 -0
  33. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/common/__init__.py +0 -0
  34. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/common/common.py +0 -0
  35. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/google_benchmark/__init__.py +0 -0
  36. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/google_benchmark/google_benchmark_json_format.py +0 -0
  37. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/memtier_benchmark/__init__.py +0 -0
  38. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/memtier_benchmark/memtier_benchmark_json_format.py +0 -0
  39. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/pyperf/__init__.py +0 -0
  40. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/pyperf/pyperf_json_format.py +0 -0
  41. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/redis_benchmark/__init__.py +0 -0
  42. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/redis_benchmark/metrics_definition.py +0 -0
  43. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/export/redis_benchmark/redis_benchmark_csv_format.py +0 -0
  44. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/extract/__init__.py +0 -0
  45. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/extract/args.py +0 -0
  46. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/extract/extract.py +0 -0
  47. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/grafana_api/__init__.py +0 -0
  48. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/grafana_api/app.py +0 -0
  49. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/grafana_api/args.py +0 -0
  50. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/grafana_api/grafana_api.py +0 -0
  51. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/__init__.py +0 -0
  52. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/daemon.py +0 -0
  53. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/flamegraph.pl +0 -0
  54. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/perf_daemon_caller.py +0 -0
  55. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/pprof.py +0 -0
  56. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/profilers.py +0 -0
  57. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/profilers_local.py +0 -0
  58. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/profilers_schema.py +0 -0
  59. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/stackcollapse-perf.pl +0 -0
  60. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/profilers/vtune.py +0 -0
  61. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/__init__.py +0 -0
  62. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/aibench_run_inference_redisai_vision/__init__.py +0 -0
  63. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/aibench_run_inference_redisai_vision/aibench_run_inference_redisai_vision.py +0 -0
  64. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/__init__.py +0 -0
  65. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/ann.py +0 -0
  66. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/.dockerignore +0 -0
  67. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/.git +0 -0
  68. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/.github/workflows/benchmarks.yml +0 -0
  69. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/.gitignore +0 -0
  70. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/LICENSE +0 -0
  71. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/README.md +0 -0
  72. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/algos.yaml +0 -0
  73. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/algosP.yaml +0 -0
  74. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/__init__.py +0 -0
  75. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/__init__.py +0 -0
  76. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/annoy.py +0 -0
  77. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/balltree.py +0 -0
  78. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/base.py +0 -0
  79. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/bruteforce.py +0 -0
  80. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/ckdtree.py +0 -0
  81. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/datasketch.py +0 -0
  82. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/definitions.py +0 -0
  83. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/diskann.py +0 -0
  84. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dolphinnpy.py +0 -0
  85. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dummy_algo.py +0 -0
  86. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elasticsearch.py +0 -0
  87. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elastiknn.py +0 -0
  88. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss.py +0 -0
  89. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_gpu.py +0 -0
  90. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_hnsw.py +0 -0
  91. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/flann.py +0 -0
  92. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/hnswlib.py +0 -0
  93. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kdtree.py +0 -0
  94. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kgraph.py +0 -0
  95. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/lshf.py +0 -0
  96. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/milvus.py +0 -0
  97. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/mrpt.py +0 -0
  98. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/n2.py +0 -0
  99. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nearpy.py +0 -0
  100. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nmslib.py +0 -0
  101. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/onng_ngt.py +0 -0
  102. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/opensearchknn.py +0 -0
  103. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/panng_ngt.py +0 -0
  104. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pinecone.py +0 -0
  105. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/puffinn.py +0 -0
  106. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pynndescent.py +0 -0
  107. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/qg_ngt.py +0 -0
  108. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/redisearch.py +0 -0
  109. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/rpforest.py +0 -0
  110. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/scann.py +0 -0
  111. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/sptag.py +0 -0
  112. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/subprocess.py +0 -0
  113. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vald.py +0 -0
  114. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vecsim-hnsw.py +0 -0
  115. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vespa.py +0 -0
  116. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/constants.py +0 -0
  117. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/data.py +0 -0
  118. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/datasets.py +0 -0
  119. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/distance.py +0 -0
  120. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/main.py +0 -0
  121. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/__init__.py +0 -0
  122. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/metrics.py +0 -0
  123. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/plot_variants.py +0 -0
  124. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/utils.py +0 -0
  125. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/results.py +0 -0
  126. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/ann_benchmarks/runner.py +0 -0
  127. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/create_dataset.py +0 -0
  128. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/create_hybrid_dataset.py +0 -0
  129. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/create_text_to_image_ds.py +0 -0
  130. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/create_website.py +0 -0
  131. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile +0 -0
  132. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.annoy +0 -0
  133. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.datasketch +0 -0
  134. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann +0 -0
  135. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann_pq +0 -0
  136. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.dolphinn +0 -0
  137. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.elasticsearch +0 -0
  138. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.elastiknn +0 -0
  139. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.faiss +0 -0
  140. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.flann +0 -0
  141. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.hnswlib +0 -0
  142. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.kgraph +0 -0
  143. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.mih +0 -0
  144. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.milvus +0 -0
  145. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.mrpt +0 -0
  146. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.n2 +0 -0
  147. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.nearpy +0 -0
  148. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.ngt +0 -0
  149. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.nmslib +0 -0
  150. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.opensearchknn +0 -0
  151. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.puffinn +0 -0
  152. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.pynndescent +0 -0
  153. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.redisearch +0 -0
  154. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.rpforest +0 -0
  155. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.scann +0 -0
  156. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.scipy +0 -0
  157. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.sklearn +0 -0
  158. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.sptag +0 -0
  159. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.vald +0 -0
  160. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install/Dockerfile.vespa +0 -0
  161. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/install.py +0 -0
  162. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/logging.conf +0 -0
  163. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/multirun.py +0 -0
  164. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/plot.py +0 -0
  165. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/bf-runner +0 -0
  166. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/bf-runner.py +0 -0
  167. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/ext-add-query-metric.md +0 -0
  168. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/ext-batch-queries.md +0 -0
  169. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/ext-prepared-queries.md +0 -0
  170. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/ext-query-parameters.md +0 -0
  171. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/protocol/specification.md +0 -0
  172. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/requirements.txt +0 -0
  173. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/requirements_py38.txt +0 -0
  174. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/fashion-mnist-784-euclidean.png +0 -0
  175. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/gist-960-euclidean.png +0 -0
  176. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/glove-100-angular.png +0 -0
  177. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/glove-25-angular.png +0 -0
  178. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/lastfm-64-dot.png +0 -0
  179. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/mnist-784-euclidean.png +0 -0
  180. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/nytimes-256-angular.png +0 -0
  181. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/results/sift-128-euclidean.png +0 -0
  182. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/run.py +0 -0
  183. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/run_algorithm.py +0 -0
  184. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/templates/chartjs.template +0 -0
  185. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/templates/detail_page.html +0 -0
  186. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/templates/general.html +0 -0
  187. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/templates/latex.template +0 -0
  188. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/templates/summary.html +0 -0
  189. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/test/__init__.py +0 -0
  190. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/test/test-jaccard.py +0 -0
  191. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ann/pkg/test/test-metrics.py +0 -0
  192. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/args.py +0 -0
  193. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/cluster.py +0 -0
  194. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ftsb/__init__.py +0 -0
  195. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ftsb/ftsb.py +0 -0
  196. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/git.py +0 -0
  197. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/grafana.py +0 -0
  198. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/memtier_benchmark/__init__.py +0 -0
  199. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/memtier_benchmark/memtier_benchmark.py +0 -0
  200. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/modules.py +0 -0
  201. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/redis_benchmark/__init__.py +0 -0
  202. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/redis_benchmark/redis_benchmark.py +0 -0
  203. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/redisgraph_benchmark_go/__init__.py +0 -0
  204. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py +0 -0
  205. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/redistimeseries.py +0 -0
  206. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/run.py +0 -0
  207. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/s3.py +0 -0
  208. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ssh.py +0 -0
  209. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py +0 -0
  210. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/tsbs_run_queries_redistimeseries/tsbs_run_queries_redistimeseries.py +0 -0
  211. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ycsb/__init__.py +0 -0
  212. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run/ycsb/ycsb.py +0 -0
  213. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/__init__.py +0 -0
  214. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/async_env.py +0 -0
  215. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/benchmark.py +0 -0
  216. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/log.py +0 -0
  217. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_async/run_async.py +0 -0
  218. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/__init__.py +0 -0
  219. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/local_client.py +0 -0
  220. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/local_db.py +0 -0
  221. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_local/local_helpers.py +0 -0
  222. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/__init__.py +0 -0
  223. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/consts.py +0 -0
  224. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/log.py +0 -0
  225. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/notifications.py +0 -0
  226. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/remote_client.py +0 -0
  227. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/remote_db.py +0 -0
  228. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/remote_env.py +0 -0
  229. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/remote_failures.py +0 -0
  230. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/run_remote/standalone.py +0 -0
  231. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/__init__.py +0 -0
  232. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/benchmark_config.py +0 -0
  233. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/local.py +0 -0
  234. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/redisearch.py +0 -0
  235. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/redisgraph_benchmark_go.py +0 -0
  236. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/results.py +0 -0
  237. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/ssh.py +0 -0
  238. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/utils/utils.py +0 -0
  239. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/watchdog/__init__.py +0 -0
  240. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/watchdog/args.py +0 -0
  241. {redisbench_admin-0.11.39 → redisbench_admin-0.11.40}/redisbench_admin/watchdog/watchdog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redisbench-admin
3
- Version: 0.11.39
3
+ Version: 0.11.40
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
@@ -154,7 +154,13 @@ $ tox
154
154
 
155
155
  To run a specific test:
156
156
  ```sh
157
- $ tox -- tests/test_redistimeseries.py
157
+ $ tox -- tests/test_defaults_purpose_built_env.py
158
+ ```
159
+
160
+ To run a specific test and persist the docker container used for timeseries:
161
+
162
+ ```
163
+ tox --docker-dont-stop=rts_datasink -- -vv --log-cli-level=INFO tests/test_defaults_purpose_built_env.py
158
164
  ```
159
165
 
160
166
  To run a specific test with verbose logging:
@@ -110,7 +110,13 @@ $ tox
110
110
 
111
111
  To run a specific test:
112
112
  ```sh
113
- $ tox -- tests/test_redistimeseries.py
113
+ $ tox -- tests/test_defaults_purpose_built_env.py
114
+ ```
115
+
116
+ To run a specific test and persist the docker container used for timeseries:
117
+
118
+ ```
119
+ tox --docker-dont-stop=rts_datasink -- -vv --log-cli-level=INFO tests/test_defaults_purpose_built_env.py
114
120
  ```
115
121
 
116
122
  To run a specific test with verbose logging:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redisbench-admin"
3
- version = "0.11.39"
3
+ version = "0.11.40"
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"
@@ -44,6 +44,9 @@ certifi = ">=2021.10.8,<2025.0.0"
44
44
  pygithub = "^1.57"
45
45
 
46
46
  [tool.poetry.dev-dependencies]
47
+ tox = ">=4.16.0"
48
+ tox-docker = ">=5.0.0"
49
+ docker = ">=7.1.0"
47
50
  pytest = "^4.6"
48
51
  pytest-cov = "^2.9.0"
49
52
  codecov = "2.1.13"
@@ -161,6 +161,10 @@ def create_compare_arguments(parser):
161
161
  type=str,
162
162
  default="https://benchmarksrediscom.grafana.net/d/",
163
163
  )
164
+ parser.add_argument(
165
+ "--grafana_uid",
166
+ default=None,
167
+ )
164
168
  parser.add_argument(
165
169
  "--auto-approve",
166
170
  required=False,
@@ -251,9 +251,12 @@ def compare_command_logic(args, project_name, project_version):
251
251
  }
252
252
  baseline_architecture = args.baseline_architecture
253
253
  comparison_architecture = args.comparison_architecture
254
- uid = None
255
- if tf_github_repo.lower() in grafana_dashboards_uids:
254
+ uid = args.grafana_uid
255
+ if tf_github_repo.lower() in grafana_dashboards_uids and uid is None:
256
256
  uid = grafana_dashboards_uids[tf_github_repo.lower()]
257
+ logging.info(f"Using uid from grafana_dashboards_uids. {grafana_dashboards_uids}. uid={uid}")
258
+ else:
259
+ logging.info(f"Using uid from args. uid={uid}")
257
260
  grafana_link_base = None
258
261
  if uid is not None:
259
262
  grafana_link_base = "{}/{}".format(grafana_base_dashboard, uid)
@@ -1216,9 +1219,9 @@ def from_rts_to_regression_table(
1216
1219
  f"Blocking regression confirmation for '{test_name}' due to unstable latency data"
1217
1220
  )
1218
1221
  if server_has_unstable:
1219
- logging.info(f" Server-side latency data is unstable")
1222
+ logging.info(" Server-side latency data is unstable")
1220
1223
  if client_has_unstable:
1221
- logging.info(f" Client-side latency data is unstable")
1224
+ logging.info(" Client-side latency data is unstable")
1222
1225
  else:
1223
1226
  both_confirm_regression = (
1224
1227
  server_confirms_regression and client_confirms_regression
@@ -1244,12 +1247,12 @@ def from_rts_to_regression_table(
1244
1247
  server_regression_details or client_regression_details
1245
1248
  )
1246
1249
  if combined_regression_details:
1247
- combined_regression_details[
1248
- "server_side"
1249
- ] = server_confirms_regression
1250
- combined_regression_details[
1251
- "client_side"
1252
- ] = client_confirms_regression
1250
+ combined_regression_details["server_side"] = (
1251
+ server_confirms_regression
1252
+ )
1253
+ combined_regression_details["client_side"] = (
1254
+ client_confirms_regression
1255
+ )
1253
1256
 
1254
1257
  # 2nd level confirmation is sufficient - always add to confirmed regressions
1255
1258
  logging.info(
@@ -1291,17 +1294,17 @@ def from_rts_to_regression_table(
1291
1294
  f"Confidence analysis for '{test_name}': {confidence_note}"
1292
1295
  )
1293
1296
  # Use 3rd level confidence if available
1294
- combined_regression_details[
1295
- "high_confidence"
1296
- ] = high_confidence
1297
+ combined_regression_details["high_confidence"] = (
1298
+ high_confidence
1299
+ )
1297
1300
  else:
1298
1301
  # No 3rd level data available - default to moderate confidence since 2nd level confirmed
1299
1302
  logging.info(
1300
1303
  f"No 3rd level data available for '{test_name}' - using 2nd level confirmation"
1301
1304
  )
1302
- combined_regression_details[
1303
- "high_confidence"
1304
- ] = True # 2nd level confirmation is reliable
1305
+ combined_regression_details["high_confidence"] = (
1306
+ True # 2nd level confirmation is reliable
1307
+ )
1305
1308
 
1306
1309
  # Always add to confirmed regressions when 2nd level confirms
1307
1310
  latency_confirmed_regression_details.append(
@@ -73,7 +73,15 @@ def deploy_command_logic(args, project_name, project_version):
73
73
  tf_triggering_env = "redisbench-admin-deploy"
74
74
  logging.info("Setting an infra timeout of {} secs".format(infra_timeout_secs))
75
75
  if args.destroy is False:
76
- (tf_return_code, _, _, _, _, _, _,) = setup_remote_environment(
76
+ (
77
+ tf_return_code,
78
+ _,
79
+ _,
80
+ _,
81
+ _,
82
+ _,
83
+ _,
84
+ ) = setup_remote_environment(
77
85
  tf,
78
86
  tf_github_sha,
79
87
  tf_github_actor,
@@ -89,6 +89,20 @@ def generate_meet_cmds(shard_count, shard_host, start_port):
89
89
  def setup_oss_cluster_from_conns(meet_cmds, redis_conns, shard_count):
90
90
  status = False
91
91
  try:
92
+ # Pre-setup validation: check uptime and cluster mode
93
+ for primary_pos, redis_conn in enumerate(redis_conns):
94
+ redis_conn.ping()
95
+
96
+ server_info = redis_conn.info("server")
97
+ uptime = server_info.get("uptime_in_seconds", 0)
98
+ cluster_enabled = server_info.get("cluster_enabled", 0)
99
+ tcp_port = server_info.get("tcp_port", "n/a")
100
+
101
+ logging.info(
102
+ f"Node {primary_pos} ({tcp_port}): uptime={uptime}s cluster_enabled={cluster_enabled}"
103
+ )
104
+
105
+ # Send meet commands
92
106
  for primary_pos, redis_conn in enumerate(redis_conns):
93
107
  logging.info(
94
108
  "Sending to primary #{} a total of {} MEET commands".format(
@@ -138,6 +152,29 @@ def setup_oss_cluster_from_conns(meet_cmds, redis_conns, shard_count):
138
152
  )
139
153
  logging.info("Node {}: cluster_state {}".format(n, cluster_state_ok))
140
154
  sleep(1)
155
+
156
+ # Post-setup validation: check uptime and cluster mode
157
+ sleep(10)
158
+ for primary_pos, redis_conn in enumerate(redis_conns):
159
+ redis_conn.ping()
160
+
161
+ server_info = redis_conn.info("server")
162
+ uptime = server_info.get("uptime_in_seconds", 0)
163
+ server_info = redis_conn.info("cluster")
164
+ cluster_enabled = server_info.get("cluster_enabled", -1)
165
+ tcp_port = server_info.get("tcp_port", "n/a")
166
+
167
+ logging.info(
168
+ f"Node {primary_pos} ({tcp_port}): uptime={uptime}s cluster_enabled={cluster_enabled}"
169
+ )
170
+
171
+ if cluster_enabled != 1:
172
+ logging.error(
173
+ "Node {}: cluster mode is not enabled (cluster_enabled={})".format(
174
+ primary_pos, cluster_enabled
175
+ )
176
+ )
177
+ return False
141
178
  status = True
142
179
  except redis.exceptions.RedisError as e:
143
180
  logging.warning("Received an error {}".format(e.__str__()))
@@ -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
@@ -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,
@@ -772,7 +787,10 @@ def print_results_table_stdout(
772
787
  metric_names=[],
773
788
  ):
774
789
  # check which metrics to extract
775
- (_, metrics,) = merge_default_and_config_metrics(
790
+ (
791
+ _,
792
+ metrics,
793
+ ) = merge_default_and_config_metrics(
776
794
  benchmark_config,
777
795
  default_metrics,
778
796
  None,
@@ -188,8 +188,6 @@ BENCHMARK_CPU_STATS_GLOBAL = {}
188
188
 
189
189
 
190
190
  def collect_cpu_data(redis_conns=[], delta_secs: float = 5.0, delay_start: float = 1.0):
191
- global BENCHMARK_CPU_STATS_GLOBAL
192
- global BENCHMARK_RUNNING_GLOBAL
193
191
  import time
194
192
 
195
193
  counter = 0
@@ -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/"
@@ -40,4 +40,16 @@ def create_run_local_arguments(parser):
40
40
  default=IGNORE_KEYSPACE_ERRORS,
41
41
  help="Ignore keyspace check errors. Will still log them as errors",
42
42
  )
43
+ parser.add_argument(
44
+ "--dry-run",
45
+ default=False,
46
+ action="store_true",
47
+ help="Setup environment and test connectivity without running benchmarks",
48
+ )
49
+ parser.add_argument(
50
+ "--dry-run-with-preload",
51
+ default=False,
52
+ action="store_true",
53
+ help="Setup environment, preload data, and test connectivity without running benchmarks",
54
+ )
43
55
  return parser