From 79f1d8fdda08c34135e67829234897feab9f0dfa Mon Sep 17 00:00:00 2001 From: Tianli Feng Date: Thu, 10 Aug 2023 15:15:07 -0700 Subject: [PATCH] Change the way telemetry parameters are parsed Signed-off-by: Tianli Feng --- .python-version | 1 + src/test_workflow/benchmark_test/benchmark_args.py | 11 +++++------ .../benchmark_test/benchmark_test_suite.py | 9 ++++----- 3 files changed, 10 insertions(+), 11 deletions(-) create mode 100644 .python-version diff --git a/.python-version b/.python-version new file mode 100644 index 0000000000..2739029233 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.9.17 diff --git a/src/test_workflow/benchmark_test/benchmark_args.py b/src/test_workflow/benchmark_test/benchmark_args.py index d796a91b35..c0bb3752e5 100644 --- a/src/test_workflow/benchmark_test/benchmark_args.py +++ b/src/test_workflow/benchmark_test/benchmark_args.py @@ -40,8 +40,7 @@ class BenchmarkArgs: benchmark_config: IO user_tag: str target_hosts: str - capture_node_stat: bool - capture_segment_replication_stat: bool + telemetry: list logging_level: int def __init__(self) -> None: @@ -90,9 +89,10 @@ def __init__(self) -> None: parser.add_argument("--workload-params", dest="workload_params", help="With this parameter you can inject variables into workloads. Parameters differs " "for each workload type. e.g., --workload-params \"number_of_replicas:1,number_of_shards:5\"") - parser.add_argument("--capture-node-stat", dest="capture_node_stat", action="store_true", + parser.add_argument("--capture-node-stat", dest="telemetry", action="append_const", const="node-stats", help="Enable opensearch-benchmark to capture node stat metrics such as cpu, mem, jvm etc as well.") - parser.add_argument("--capture_segment_replication_stat", dest="capture_segment_replication_stat", action="store_true", + parser.add_argument("--capture_segment_replication_stat", dest="telemetry", action="append_const", + const="segment-replication-stats", help="Enable opensearch-benchmark to segment_replication stat metrics such as replication lag.") parser.add_argument("-v", "--verbose", help="Show more verbose output.", action="store_const", default=logging.INFO, const=logging.DEBUG, dest="logging_level") @@ -121,6 +121,5 @@ def __init__(self) -> None: self.user_tag = args.user_tag if args.user_tag else None self.additional_config = json.dumps(args.additional_config) if args.additional_config is not None else None self.use_50_percent_heap = args.use_50_percent_heap - self.capture_node_stat = args.capture_node_stat - self.capture_segment_replication_stat = args.capture_segment_replication_stat + self.telemetry = args.telemetry self.logging_level = args.logging_level diff --git a/src/test_workflow/benchmark_test/benchmark_test_suite.py b/src/test_workflow/benchmark_test/benchmark_test_suite.py index d42c1c217b..ecf3821d49 100644 --- a/src/test_workflow/benchmark_test/benchmark_test_suite.py +++ b/src/test_workflow/benchmark_test/benchmark_test_suite.py @@ -48,11 +48,10 @@ def __init__( user_tag = f"--user-tag=\"{args.user_tag}\"" self.command += f" {user_tag}" - self.command += " --telemetry=" - if args.capture_node_stat: - self.command += "node-stats," - if args.capture_segment_replication_stat: - self.command += "segment-replication-stats," + if args.telemetry: + self.command += " --telemetry=" + for value in args.telemetry: + self.command += f"{value}," def execute(self) -> None: if self.security: