Skip to content

Commit 7a48993

Browse files
Enabled --override-test-time feature on redisbench-admin export (#227)
* [add] enabled --override-test-time feature on redisbench-admin export * Bumping version from 0.5.8 to 0.5.9 * [add] Enabled data format of %Y-%m-%d %H:%M:%S on redisbench-admin export
1 parent 09525be commit 7a48993

File tree

8 files changed

+9619
-12
lines changed

8 files changed

+9619
-12
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "redisbench-admin"
3-
version = "0.5.8"
3+
version = "0.5.9"
44
description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
55
authors = ["filipecosta90 <[email protected]>","Redis Performance Group <[email protected]>"]
66
readme = "README.md"

redisbench_admin/export/args.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
# Copyright (c) 2021., Redis Labs Modules
44
# All rights reserved.
55
#
6+
import datetime
7+
68
from redisbench_admin.utils.remote import (
79
PERFORMANCE_RTS_HOST,
810
PERFORMANCE_RTS_PORT,
@@ -87,4 +89,9 @@ def create_export_arguments(parser):
8789
"--redistimeseries_pass", type=str, default=PERFORMANCE_RTS_AUTH
8890
)
8991
parser.add_argument("--redistimeseries_user", type=str, default=None)
92+
parser.add_argument(
93+
"--override-test-time",
94+
type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S"),
95+
help='Override the test time passing datetime in format "%%Y-%%m-%%d %%H:%%M:%%S". Example valid datetime: "2021-01-01 10:00:00". Times are in UTC TZ. If this argument is set, the parsed test time is overridden.',
96+
)
9097
return parser

redisbench_admin/export/export.py

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ def export_command_logic(args, project_name, project_version):
4040
extra_tags_dict = split_tags_string(args.extra_tags)
4141
logging.info("Using the following extra tags: {}".format(extra_tags_dict))
4242

43-
logging.info("Checking connection to RedisTimeSeries.")
43+
logging.info(
44+
"Checking connection to RedisTimeSeries to host: {}:{}".format(
45+
args.redistimeseries_host, args.redistimeseries_port
46+
)
47+
)
4448
rts = Client(
4549
host=args.redistimeseries_host,
4650
port=args.redistimeseries_port,
@@ -65,19 +69,31 @@ def export_command_logic(args, project_name, project_version):
6569
_,
6670
_,
6771
) = get_defaults(exporter_spec_file)
68-
69-
datapoints_timestamp = parse_exporter_timemetric(
70-
exporter_timemetric_path, results_dict
71-
)
72-
if datapoints_timestamp is None:
73-
datapoints_timestamp = int(
74-
datetime.datetime.now(datetime.timezone.utc).timestamp() * 1000.0
72+
if args.override_test_time:
73+
datapoints_timestamp = int(args.override_test_time.timestamp() * 1000.0)
74+
logging.info(
75+
"Overriding test time with the following date {}. Timestamp {}".format(
76+
args.override_test_time, datapoints_timestamp
77+
)
7578
)
76-
logging.warning(
77-
"Error while trying to parse datapoints timestamp. Using current system timestamp Error: {}".format(
78-
datapoints_timestamp
79+
else:
80+
logging.info(
81+
"Trying to parse the time-metric from path {}".format(
82+
exporter_timemetric_path
7983
)
8084
)
85+
datapoints_timestamp = parse_exporter_timemetric(
86+
exporter_timemetric_path, results_dict
87+
)
88+
if datapoints_timestamp is None:
89+
datapoints_timestamp = int(
90+
datetime.datetime.now(datetime.timezone.utc).timestamp() * 1000.0
91+
)
92+
logging.warning(
93+
"Error while trying to parse datapoints timestamp. Using current system timestamp Error: {}".format(
94+
datapoints_timestamp
95+
)
96+
)
8197

8298
timeseries_test_sucess_flow(
8399
True,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 0.5
2+
exporter:
3+
redistimeseries:
4+
timemetric: "$.'ALL STATS'.Runtime.'Start time'"
5+
metrics:
6+
- "$.'BEST RUN RESULTS'.Totals.'Ops/sec'"

0 commit comments

Comments
 (0)