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.
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/PKG-INFO +2 -3
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/pyproject.toml +2 -2
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/args.py +0 -2
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/compare.py +27 -45
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/deploy.py +10 -5
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/export.py +7 -1
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/perf.py +24 -24
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/args.py +11 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/common.py +57 -32
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ftsb/ftsb.py +0 -1
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ssh.py +0 -15
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/async_terraform.py +10 -2
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/render_files.py +3 -3
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/args.py +2 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_db.py +6 -2
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/run_local.py +18 -12
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_env.py +12 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_helpers.py +0 -1
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/run_remote.py +25 -18
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/standalone.py +5 -6
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/terraform.py +5 -1
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/benchmark_config.py +0 -8
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/remote.py +15 -56
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/utils.py +7 -2
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/watchdog/watchdog.py +8 -9
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/LICENSE +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/README.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/cli.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/commands/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/commands/commands.json.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/compare/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/deploy/args.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/oss_cluster.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/environments/oss_standalone.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/args.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/common/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/common/common.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/google_benchmark/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/google_benchmark/google_benchmark_json_format.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/memtier_benchmark/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/memtier_benchmark/memtier_benchmark_json_format.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/pyperf/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/pyperf/pyperf_json_format.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/metrics_definition.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/export/redis_benchmark/redis_benchmark_csv_format.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/args.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/extract/extract.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/app.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/args.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/grafana_api/grafana_api.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/daemon.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/flamegraph.pl +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/perf_daemon_caller.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/pprof.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers_local.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/profilers_schema.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/stackcollapse-perf.pl +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/profilers/vtune.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/aibench_run_inference_redisai_vision/__init__.py +0 -0
- {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
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/ann.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.dockerignore +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.git +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.github/workflows/benchmarks.yml +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/.gitignore +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/LICENSE +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/README.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/algos.yaml +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/algosP.yaml +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/annoy.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/balltree.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/base.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/bruteforce.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/ckdtree.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/datasketch.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/definitions.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/diskann.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dolphinnpy.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/dummy_algo.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elasticsearch.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/elastiknn.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_gpu.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/faiss_hnsw.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/flann.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/hnswlib.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kdtree.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/kgraph.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/lshf.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/milvus.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/mrpt.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/n2.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nearpy.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/nmslib.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/onng_ngt.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/opensearchknn.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/panng_ngt.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pinecone.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/puffinn.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/pynndescent.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/qg_ngt.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/redisearch.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/rpforest.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/scann.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/sptag.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/subprocess.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vald.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vecsim-hnsw.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/algorithms/vespa.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/constants.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/data.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/datasets.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/distance.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/main.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/metrics.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/plot_variants.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/plotting/utils.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/results.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/ann_benchmarks/runner.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_dataset.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_hybrid_dataset.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_text_to_image_ds.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/create_website.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.annoy +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.datasketch +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.diskann_pq +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.dolphinn +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.elasticsearch +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.elastiknn +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.faiss +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.flann +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.hnswlib +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.kgraph +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.mih +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.milvus +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.mrpt +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.n2 +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.nearpy +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.ngt +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.nmslib +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.opensearchknn +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.puffinn +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.pynndescent +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.redisearch +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.rpforest +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.scann +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.scipy +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.sklearn +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.sptag +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.vald +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install/Dockerfile.vespa +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/install.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/logging.conf +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/multirun.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/plot.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/bf-runner +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/bf-runner.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-add-query-metric.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-batch-queries.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-prepared-queries.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/ext-query-parameters.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/protocol/specification.md +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/requirements.txt +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/requirements_py38.txt +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/fashion-mnist-784-euclidean.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/gist-960-euclidean.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/glove-100-angular.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/glove-25-angular.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/lastfm-64-dot.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/mnist-784-euclidean.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/nytimes-256-angular.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/results/sift-128-euclidean.png +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/run.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/run_algorithm.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/chartjs.template +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/detail_page.html +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/general.html +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/latex.template +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/templates/summary.html +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/test-jaccard.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ann/pkg/test/test-metrics.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/cluster.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ftsb/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/git.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/grafana.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/memtier_benchmark/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/memtier_benchmark/memtier_benchmark.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/metrics.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/modules.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redis_benchmark/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redis_benchmark/redis_benchmark.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redisgraph_benchmark_go/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/redistimeseries.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/run.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/s3.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/tsbs_run_queries_redistimeseries/tsbs_run_queries_redistimeseries.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ycsb/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run/ycsb/ycsb.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/async_env.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/benchmark.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/log.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/run_async.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_client.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_helpers.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/args.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/consts.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/log.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/notifications.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_client.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_db.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_remote/remote_failures.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/__init__.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/local.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/redisearch.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/redisgraph_benchmark_go.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/results.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/utils/ssh.py +0 -0
- {redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/watchdog/__init__.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
|
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()
|
|
1046
|
+
comparison_median = float(comparison_df.median())
|
|
1065
1047
|
comparison_v = comparison_median
|
|
1066
|
-
comparison_std = float(comparison_df.std()
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
|
|
405
|
-
|
|
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
|
-
|
|
445
|
-
|
|
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
|
-
|
|
465
|
-
|
|
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
|
-
|
|
492
|
-
|
|
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
|
-
|
|
532
|
-
|
|
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
|
-
|
|
551
|
-
|
|
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
|
-
|
|
595
|
-
|
|
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
|
-
|
|
609
|
-
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
|
|
623
|
-
|
|
624
|
-
|
|
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
|
-
|
|
707
|
+
start_time = time.time()
|
|
695
708
|
(
|
|
696
709
|
requires_keyspacelen_check,
|
|
697
710
|
keyspacelen,
|
|
698
711
|
) = check_dbconfig_keyspacelen_requirement(benchmark_config)
|
|
699
|
-
|
|
700
|
-
|
|
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."
|
|
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
|
-
|
|
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
|
|
729
|
+
"The total number of keys in setup matches the expected spec: {} == {}".format(
|
|
714
730
|
keyspacelen, total_keys
|
|
715
731
|
)
|
|
716
732
|
)
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
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
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
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
|
-
(
|
|
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)
|
{redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/async_terraform.py
RENAMED
|
@@ -114,7 +114,11 @@ class TerraformClass:
|
|
|
114
114
|
def async_runner_setup(
|
|
115
115
|
self,
|
|
116
116
|
):
|
|
117
|
-
(
|
|
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
|
-
(
|
|
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",
|
{redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_async/render_files.py
RENAMED
|
@@ -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
|
-
|
|
33
|
-
|
|
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",
|
{redisbench_admin-0.11.19 → redisbench_admin-0.11.21}/redisbench_admin/run_local/local_db.py
RENAMED
|
@@ -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(
|