Skip to content

Commit 6f7f907

Browse files
Added compare tool to replace redisbench-admin
1 parent 51f8fc0 commit 6f7f907

File tree

34 files changed

+2356
-58
lines changed

34 files changed

+2356
-58
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ requires = ["poetry_core>=1.0.0"]
3737
build-backend = "poetry.core.masonry.api"
3838

3939
[tool.poetry.scripts]
40+
redis-benchmarks-compare = "redis_benchmarks_specification.__compare__.compare:main"
4041
redis-benchmarks-spec-api = "redis_benchmarks_specification.__api__.api:main"
4142
redis-benchmarks-spec-builder = "redis_benchmarks_specification.__builder__.builder:main"
4243
redis-benchmarks-spec-client-runner = "redis_benchmarks_specification.__runner__.runner:main"

redis_benchmarks_specification/__cli__/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ def trigger_tests_cli_command_logic(args, project_name, project_version):
231231
)
232232
filtered_hash_commits.append(cdict)
233233

234-
if True: # args.dry_run is False:
234+
if args.dry_run is False:
235235
conn = redis.StrictRedis(
236236
host=args.redis_host,
237237
port=args.redis_port,
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Apache License Version 2.0
2+
#
3+
# Copyright (c) 2021., Redis Labs Modules
4+
# All rights reserved.
5+
#
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# Apache License Version 2.0
2+
#
3+
# Copyright (c) 2021., Redis Labs Modules
4+
# All rights reserved.
5+
#
6+
7+
# environment variables
8+
import datetime
9+
import os
10+
11+
12+
def get_start_time_vars(start_time=None):
13+
if start_time is None:
14+
start_time = datetime.datetime.utcnow()
15+
start_time_ms = int(
16+
(start_time - datetime.datetime(1970, 1, 1)).total_seconds() * 1000
17+
)
18+
start_time_str = start_time.strftime("%Y-%m-%d-%H-%M-%S")
19+
return start_time, start_time_ms, start_time_str
20+
21+
22+
PERFORMANCE_GH_TOKEN = os.getenv("PERFORMANCE_GH_TOKEN", None)
23+
PERFORMANCE_RTS_PUSH = bool(int(os.getenv("PUSH_RTS", "0")))
24+
25+
26+
_, NOW_UTC, _ = get_start_time_vars()
27+
LAST_MONTH_UTC = NOW_UTC - (31 * 24 * 60 * 60 * 1000)
28+
START_TIME_NOW_UTC, _, _ = get_start_time_vars()
29+
START_TIME_LAST_SIX_MONTHS_UTC = START_TIME_NOW_UTC - datetime.timedelta(days=180)
30+
31+
32+
def create_compare_arguments(parser):
33+
parser.add_argument(
34+
"--test",
35+
type=str,
36+
default="",
37+
help="specify a test (or a comma separated list of tests) to use for comparison. If none is specified by default will use all of them.",
38+
)
39+
parser.add_argument(
40+
"--defaults_filename",
41+
type=str,
42+
default="defaults.yml",
43+
help="specify the defaults file containing spec topologies, common metric extractions,etc...",
44+
)
45+
parser.add_argument("--github_repo", type=str, default="redis")
46+
parser.add_argument("--github_org", type=str, default="redis")
47+
parser.add_argument("--triggering_env", type=str, default="ci")
48+
parser.add_argument("--github_token", type=str, default=PERFORMANCE_GH_TOKEN)
49+
parser.add_argument("--pull-request", type=str, default=None, nargs="?", const="")
50+
parser.add_argument("--deployment_name", type=str, default="oss-standalone")
51+
parser.add_argument("--deployment_type", type=str, default="oss-standalone")
52+
parser.add_argument("--baseline_deployment_name", type=str, default="")
53+
parser.add_argument("--comparison_deployment_name", type=str, default="")
54+
parser.add_argument("--metric_name", type=str, default="ALL_STATS.Totals.Ops/sec")
55+
parser.add_argument(
56+
"--running_platform", type=str, default="intel64-ubuntu22.04-redis-icx1"
57+
)
58+
parser.add_argument("--extra-filter", type=str, default=None)
59+
parser.add_argument(
60+
"--last_n",
61+
type=int,
62+
default=-1,
63+
help="Use the last N samples for each time-serie. by default will use all available values",
64+
)
65+
parser.add_argument(
66+
"--last_n_baseline",
67+
type=int,
68+
default=7,
69+
help="Use the last N samples for each time-serie. by default will use last 7 available values",
70+
)
71+
parser.add_argument(
72+
"--last_n_comparison",
73+
type=int,
74+
default=1,
75+
help="Use the last N samples for each time-serie. by default will use last value only",
76+
)
77+
parser.add_argument(
78+
"--from-date",
79+
type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
80+
default=START_TIME_LAST_SIX_MONTHS_UTC,
81+
)
82+
parser.add_argument(
83+
"--to-date",
84+
type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
85+
default=START_TIME_NOW_UTC,
86+
)
87+
parser.add_argument(
88+
"--metric_mode",
89+
type=str,
90+
default="higher-better",
91+
help="either 'lower-better' or 'higher-better'",
92+
)
93+
parser.add_argument("--baseline-branch", type=str, default=None, required=False)
94+
parser.add_argument("--baseline-tag", type=str, default=None, required=False)
95+
parser.add_argument("--comparison-branch", type=str, default=None, required=False)
96+
parser.add_argument("--comparison-tag", type=str, default=None, required=False)
97+
parser.add_argument("--print-regressions-only", type=bool, default=False)
98+
parser.add_argument("--print-improvements-only", type=bool, default=False)
99+
parser.add_argument("--skip-unstable", type=bool, default=False)
100+
parser.add_argument("--verbose", type=bool, default=False)
101+
parser.add_argument("--simple-table", type=bool, default=False)
102+
parser.add_argument("--use_metric_context_path", type=bool, default=False)
103+
parser.add_argument("--testname_regex", type=str, default=".*", required=False)
104+
parser.add_argument(
105+
"--regressions-percent-lower-limit",
106+
type=float,
107+
default=5.0,
108+
help="Only consider regressions with a percentage over the defined limit. (0-100)",
109+
)
110+
parser.add_argument(
111+
"--redistimeseries_host", type=str, default="benchmarks.redislabs.com"
112+
)
113+
parser.add_argument("--redistimeseries_port", type=int, default=12011)
114+
parser.add_argument("--redistimeseries_pass", type=str, default=None)
115+
parser.add_argument("--redistimeseries_user", type=str, default=None)
116+
parser.add_argument(
117+
"--from_timestamp",
118+
default=None,
119+
help="The minimum period to use for the the value fetching",
120+
)
121+
parser.add_argument("--to_timestamp", default=None)
122+
123+
parser.add_argument(
124+
"--grafana_base_dashboard",
125+
type=str,
126+
default="https://benchmarksrediscom.grafana.net/d/",
127+
)
128+
parser.add_argument(
129+
"--auto-approve",
130+
required=False,
131+
default=False,
132+
action="store_true",
133+
help="Skip interactive approval of changes to github before applying.",
134+
)
135+
return parser

0 commit comments

Comments
 (0)