diff --git a/pyproject.toml b/pyproject.toml index 5e72ceb..f179ede 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redisbench-admin" -version = "0.7.7" +version = "0.7.8" description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )." authors = ["filipecosta90 ","Redis Performance Group "] readme = "README.md" diff --git a/redisbench_admin/run/ann/pkg b/redisbench_admin/run/ann/pkg index 55b2e84..bfa141e 160000 --- a/redisbench_admin/run/ann/pkg +++ b/redisbench_admin/run/ann/pkg @@ -1 +1 @@ -Subproject commit 55b2e8402ab1a9bfbc89d8b6b31c39ff93d08073 +Subproject commit bfa141e4dd4bed6eca60b419f409738906466bbe diff --git a/redisbench_admin/run/args.py b/redisbench_admin/run/args.py index 82bbfe0..27ffe5c 100644 --- a/redisbench_admin/run/args.py +++ b/redisbench_admin/run/args.py @@ -26,7 +26,7 @@ BENCHMARK_GLOB = os.getenv("BENCHMARK_GLOB", "*.yml") S3_BUCKET_NAME = os.getenv("S3_BUCKET_NAME", "ci.benchmarks.redislabs") PUSH_S3 = bool(os.getenv("PUSH_S3", False)) -FAIL_FAST = bool(os.getenv("FAIL_FAST", False)) +FAIL_FAST = bool(int(os.getenv("FAIL_FAST", 0))) PROFILERS_DSO = os.getenv("PROFILERS_DSO", None) PROFILERS_ENABLED = bool(int(os.getenv("PROFILE", 0))) PROFILERS = os.getenv("PROFILERS", PROFILERS_DEFAULT) diff --git a/redisbench_admin/run_remote/run_remote.py b/redisbench_admin/run_remote/run_remote.py index a419bbb..9452204 100644 --- a/redisbench_admin/run_remote/run_remote.py +++ b/redisbench_admin/run_remote/run_remote.py @@ -50,6 +50,7 @@ ) from redisbench_admin.utils.benchmark_config import ( prepare_benchmark_definitions, + get_metadata_tags, ) from redisbench_admin.utils.redisgraph_benchmark_go import setup_remote_benchmark_agent from redisbench_admin.utils.remote import ( @@ -211,6 +212,12 @@ def run_remote_command_logic(args, project_name, project_version): overall_tables[setup_name] = {} for test_name, benchmark_config in benchmarks_map.items(): + metadata_tags = get_metadata_tags(benchmark_config) + logging.info( + "Including the extra metadata tags into this test generated time-series: {}".format( + metadata_tags + ) + ) for repetition in range(1, BENCHMARK_REPETITIONS + 1): remote_perf = None logging.info( @@ -665,6 +672,7 @@ def run_remote_command_logic(args, project_name, project_version): tf_github_org, tf_github_repo, tf_triggering_env, + metadata_tags, ) if branch_target_tables is not None: for ( diff --git a/redisbench_admin/utils/benchmark_config.py b/redisbench_admin/utils/benchmark_config.py index 65e26dc..73e73d4 100644 --- a/redisbench_admin/utils/benchmark_config.py +++ b/redisbench_admin/utils/benchmark_config.py @@ -292,6 +292,13 @@ def extract_exporter_metrics(default_config): return default_metrics, exporter_timemetric_path +def get_metadata_tags(benchmark_config): + metadata_tags = {} + if "metadata" in benchmark_config: + metadata_tags = benchmark_config["metadata"] + return metadata_tags + + def extract_benchmark_type_from_config( benchmark_config, config_key="clientconfig", diff --git a/tests/test_benchmark_config.py b/tests/test_benchmark_config.py index d61d1ed..e1d81f9 100644 --- a/tests/test_benchmark_config.py +++ b/tests/test_benchmark_config.py @@ -7,6 +7,7 @@ check_required_modules, extract_redis_dbconfig_parameters, extract_benchmark_type_from_config, + get_metadata_tags, ) @@ -132,3 +133,15 @@ def test_extract_benchmark_type_from_config(): ) assert benchmark_type == "mixed" assert benchmark_config_present == False + + +def test_get_metadata_tags(): + with open("./tests/test_data/vecsim-memtier.yml", "r") as yml_file: + benchmark_config = yaml.safe_load(yml_file) + metadata_tags = get_metadata_tags(benchmark_config) + assert metadata_tags == {"component": "vecsim"} + + with open("./tests/test_data/redis-benchmark.yml", "r") as yml_file: + benchmark_config = yaml.safe_load(yml_file) + metadata_tags = get_metadata_tags(benchmark_config) + assert metadata_tags == {} diff --git a/tests/test_data/vecsim-memtier.yml b/tests/test_data/vecsim-memtier.yml index 320b5c4..77ec831 100644 --- a/tests/test_data/vecsim-memtier.yml +++ b/tests/test_data/vecsim-memtier.yml @@ -1,6 +1,8 @@ name: "vecsim_hybrid_HNSW_05" description: "hybrid hnsw with 0.5% filtered results" +metadata: + component: "vecsim" remote: - type: oss-standalone - setup: redisearch-m5d diff --git a/tests/test_run_remote.py b/tests/test_run_remote.py index 88b0fc5..2deeea2 100644 --- a/tests/test_run_remote.py +++ b/tests/test_run_remote.py @@ -6,10 +6,13 @@ import os import redis -from redisbench_admin.run.metrics import collect_redis_metrics +import yaml +from redisbench_admin.run.metrics import collect_redis_metrics -from redisbench_admin.run_remote.run_remote import export_redis_metrics +from redisbench_admin.run_remote.run_remote import ( + export_redis_metrics, +) def test_export_redis_metrics():