Skip to content

Commit aadad8b

Browse files
Removed very large benchmarks from SPEC.
1 parent 50c45ef commit aadad8b

26 files changed

+1061
-351
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 = "redis-benchmarks-specification"
3-
version = "0.1.272"
3+
version = "0.1.275"
44
description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
55
authors = ["filipecosta90 <[email protected]>","Redis Performance Group <[email protected]>"]
66
readme = "Readme.md"

redis_benchmarks_specification/__common__/timeseries.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ def extract_results_table(
133133
use_metric_context_path = False
134134
if len(find_res) > 1:
135135
use_metric_context_path = True
136+
# Always use context path for precision_summary metrics to show actual precision levels
137+
if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath:
138+
use_metric_context_path = True
136139
for metric in find_res:
137140
metric_name = str(metric.path)
138141
metric_value = float(metric.value)
@@ -142,15 +145,34 @@ def extract_results_table(
142145
if metric_jsonpath[0] == ".":
143146
metric_jsonpath = metric_jsonpath[1:]
144147

148+
# For precision_summary metrics, construct the full resolved path for display
149+
display_path = metric_jsonpath
150+
if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path:
151+
# Replace the wildcard with the actual precision level
152+
display_path = metric_jsonpath.replace("*", metric_context_path)
153+
145154
# retro-compatible naming
146155
if use_metric_context_path is False:
147156
metric_name = metric_jsonpath
148-
149-
metric_name = metric_name.replace("'", "")
150-
metric_name = metric_name.replace('"', "")
151-
metric_name = metric_name.replace("(", "")
152-
metric_name = metric_name.replace(")", "")
153-
metric_name = metric_name.replace(" ", "_")
157+
else:
158+
# For display purposes, use the resolved path for precision_summary
159+
if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath:
160+
metric_name = display_path
161+
else:
162+
# Clean up the metric name for other cases
163+
metric_name = metric_name.replace("'", "")
164+
metric_name = metric_name.replace('"', "")
165+
metric_name = metric_name.replace("(", "")
166+
metric_name = metric_name.replace(")", "")
167+
metric_name = metric_name.replace(" ", "_")
168+
169+
# Apply standard cleaning to all metric names
170+
if not ("precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path):
171+
metric_name = metric_name.replace("'", "")
172+
metric_name = metric_name.replace('"', "")
173+
metric_name = metric_name.replace("(", "")
174+
metric_name = metric_name.replace(")", "")
175+
metric_name = metric_name.replace(" ", "_")
154176

155177
results_matrix.append(
156178
[

redis_benchmarks_specification/__runner__/args.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,17 @@ def create_client_runner_args(project_name):
208208
type=int,
209209
help="override memtier number of runs for each benchmark. By default will run once each test",
210210
)
211+
parser.add_argument(
212+
"--timeout-buffer",
213+
default=60,
214+
type=int,
215+
help="Buffer time in seconds to add to test-time for process timeout (both Docker containers and local processes). Default is 60 seconds.",
216+
)
211217
parser.add_argument(
212218
"--container-timeout-buffer",
213219
default=60,
214220
type=int,
215-
help="Buffer time in seconds to add to test-time for container timeout. Default is 60 seconds.",
221+
help="Deprecated: Use --timeout-buffer instead. Buffer time in seconds to add to test-time for container timeout.",
216222
)
217223
parser.add_argument(
218224
"--cluster-mode",
@@ -225,4 +231,40 @@ def create_client_runner_args(project_name):
225231
default="",
226232
help="UNIX Domain socket name",
227233
)
234+
parser.add_argument(
235+
"--enable-remote-profiling",
236+
default=False,
237+
action="store_true",
238+
help="Enable remote profiling of Redis processes via HTTP GET endpoint. Profiles are collected in folded format during benchmark execution.",
239+
)
240+
parser.add_argument(
241+
"--remote-profile-host",
242+
type=str,
243+
default="localhost",
244+
help="Host for remote profiling HTTP endpoint. Default is localhost.",
245+
)
246+
parser.add_argument(
247+
"--remote-profile-port",
248+
type=int,
249+
default=8080,
250+
help="Port for remote profiling HTTP endpoint. Default is 8080.",
251+
)
252+
parser.add_argument(
253+
"--remote-profile-output-dir",
254+
type=str,
255+
default="profiles",
256+
help="Directory to store remote profiling output files. Default is 'profiles/'.",
257+
)
258+
parser.add_argument(
259+
"--remote-profile-username",
260+
type=str,
261+
default=None,
262+
help="Username for HTTP basic authentication to remote profiling endpoint. Optional.",
263+
)
264+
parser.add_argument(
265+
"--remote-profile-password",
266+
type=str,
267+
default=None,
268+
help="Password for HTTP basic authentication to remote profiling endpoint. Optional.",
269+
)
228270
return parser

0 commit comments

Comments
 (0)