Skip to content

Commit be1e243

Browse files
committed
[add] kicking off export action
1 parent face387 commit be1e243

File tree

9 files changed

+70
-17
lines changed

9 files changed

+70
-17
lines changed

README.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,28 @@
1-
# redisbench-admin
1+
2+
# redisbench-admin
3+
Redis benchmark run helper. A wrapper around ftsb_redisearch ( future versions will also support redis-benchmark and memtier_benchmark ).
4+
5+
6+
## Installation
7+
8+
Installation is done using pip, the package installer for Python, in the following manner:
9+
10+
```bash
11+
python3 -m pip install redisbench-admin
12+
```
13+
14+
## Overview
15+
16+
TBD
17+
18+
### Running tests
19+
20+
A simple test suite is provided, and can be run with:
21+
22+
```sh
23+
$ poetry run pytest
24+
```
25+
26+
## License
27+
28+
redisbench-admin is distributed under the BSD3 license - see [LICENSE](LICENSE)

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.1.5"
3+
version = "0.1.6"
44
description = "Redis benchmark run helper. A wrapper around ftsb_redisearch ( future versions will also support redis-benchmark and memtier_benchmark )."
55
authors = ["filipecosta90 <[email protected]>"]
66

redisbench_admin/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.1.3'
1+
__version__ = '0.1.6'

redisbench_admin/cli.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import argparse
22
import sys
3-
43
import toml
4+
from redisbench_admin import __version__
55

66
from redisbench_admin.compare.args import create_compare_arguments
77
from redisbench_admin.compare.compare import compare_command_logic
@@ -12,10 +12,17 @@
1212

1313

1414
def populate_with_poetry_data():
15-
poetry_data = toml.load("pyproject.toml")['tool']['poetry']
16-
project_name = poetry_data["name"]
17-
project_version = poetry_data["version"]
18-
project_description = poetry_data["description"]
15+
project_name = 'redisbench-admin'
16+
project_version = __version__
17+
project_description = None
18+
try:
19+
poetry_data = toml.load("pyproject.toml")['tool']['poetry']
20+
project_name = poetry_data["name"]
21+
project_version = poetry_data["version"]
22+
project_description = poetry_data["description"]
23+
except FileNotFoundError:
24+
pass
25+
1926
return project_name, project_description, project_version
2027

2128

redisbench_admin/compare/compare.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
def get_key_results_and_values(baseline_json, step, use_result):
1111
selected_run = None
1212
metrics = {}
13-
for name, value in baseline_json["key-results"][step][use_result][0].items():
14-
if name == "run-name":
15-
selected_run = value
16-
else:
17-
metrics[name] = value
13+
if "key-results" in baseline_json and use_result in baseline_json["key-results"]:
14+
for name, value in baseline_json["key-results"][step][use_result][0].items():
15+
if name == "run-name":
16+
selected_run = value
17+
else:
18+
metrics[name] = value
1819
return selected_run, metrics
1920

2021

@@ -84,8 +85,6 @@ def compare_command_logic(args):
8485
ammount_of_failing_metrics = len (failing_metrics)
8586
if ammount_of_failing_metrics > 0:
8687
df_keys = df.keys()
87-
# print(df.loc['pct_change'][0])
88-
# print([0])
8988
print( "There was a total of {} metrics that presented a regression above {} %".format(ammount_of_failing_metrics,max_pct_change) )
9089
for pos,failed in enumerate(failing_metrics_serie):
9190
if failed:

redisbench_admin/export/args.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
def create_export_arguments(parser):
2+
parser.add_argument('--benchmark-result-files', type=str, required=True,
3+
help="benchmark results files to read results from. can be a local file, a remote link, or an s3 bucket.")
4+
parser.add_argument('--steps', type=str, default="setup,benchmark",
5+
help="comma separated list of steps to be analyzed given the benchmark result files")
6+
parser.add_argument('--exporter', type=str, default="csv",
7+
help="exporter to be used ( either csv or redistimeseries )")
28
return parser

redisbench_admin/export/export.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
1+
import os
2+
3+
from redisbench_admin.utils.utils import retrieve_local_or_remote_input_json
4+
5+
16
def export_command_logic(args):
2-
pass
7+
benchmark_files = args.benchmark_result_files
8+
local_path = os.path.abspath(args.local_dir)
9+
included_steps = args.steps.split(",")
10+
benchmark_results = retrieve_local_or_remote_input_json(benchmark_files, local_path, "--benchmark-result-files")

tests/test_compare.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from unittest import TestCase
2+
3+
4+
class Test(TestCase):
5+
def test_get_key_results_and_values(self):
6+
pass

tests/test_redisbench_admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33

44
def test_version():
5-
assert __version__ == '0.1.3'
5+
assert __version__ == '0.1.6'

0 commit comments

Comments
 (0)