diff options
author | 2016-10-12 00:49:41 +0000 | |
---|---|---|
committer | 2016-10-12 00:49:41 +0000 | |
commit | baae6fe3223abd869d4de21e0c51fe44f6f6c846 (patch) | |
tree | abd76569b604e3b2c5cb0059b59c8a85accb8e91 | |
parent | b0b7627c537f1edbaf1deaebd04c2d558c413ad7 (diff) | |
parent | 74eebf0e52388e2f5db598cdc0313e3e2bcc2974 (diff) |
Merge "visualize qpi using kibana_dashboard"
-rw-r--r-- | dashboard/dashboard/elastic2kibana/templates/qpi.json | 45 | ||||
-rw-r--r-- | dashboard/dashboard/mongo2elastic/format.py | 18 | ||||
-rw-r--r-- | dashboard/dashboard/mongo2elastic/main.py | 10 | ||||
-rw-r--r-- | dashboard/dashboard/qtip/__init__.py | 0 | ||||
-rw-r--r-- | dashboard/dashboard/qtip/testcases.yaml | 28 |
5 files changed, 99 insertions, 2 deletions
diff --git a/dashboard/dashboard/elastic2kibana/templates/qpi.json b/dashboard/dashboard/elastic2kibana/templates/qpi.json new file mode 100644 index 0000000..a46f315 --- /dev/null +++ b/dashboard/dashboard/elastic2kibana/templates/qpi.json @@ -0,0 +1,45 @@ +{% set aggs = aggs|default([]) -%} + +{ + "title": "qpi", + "type": "line", + "listeners": {}, + "params": { + "addLegend": true, + "shareYAxis": true, + "addTooltip": true, + "smoothLines": false, + "scale": "linear", + "interpolate": "linear", + "times": [], + "addTimeMarker": false, + "defaultYExtents": false, + "setYExtents": false, + "yAxis": {}, + "mode": "stacked" + }, + "aggs": [ + {% for agg in aggs %} + { + "id": {{agg.id }}, + "type": "avg", + "schema": "metric", + "params": { + "field": "{{agg.field}}" + } + }, + {% endfor %} + { + "id": {{ aggs|length + 1 }}, + "type": "date_histogram", + "schema": "segment", + "params": { + "field": "start_date", + "interval": "auto", + "customInterval": "2h", + "min_doc_count": 1, + "extended_bounds": {} + } + } + ] +} diff --git a/dashboard/dashboard/mongo2elastic/format.py b/dashboard/dashboard/mongo2elastic/format.py index ef485ba..0bbde17 100644 --- a/dashboard/dashboard/mongo2elastic/format.py +++ b/dashboard/dashboard/mongo2elastic/format.py @@ -184,3 +184,21 @@ def format_vims(testcase): } } return True + + +def format_qpi(testcase): + """ + Look for these and leave any of those: + details.index + + If none are present, then return False + """ + details = testcase['details'] + if 'index' not in details: + return False + + for key, value in details.items(): + if key != 'index': + del details[key] + + return True diff --git a/dashboard/dashboard/mongo2elastic/main.py b/dashboard/dashboard/mongo2elastic/main.py index a526d53..303d82c 100644 --- a/dashboard/dashboard/mongo2elastic/main.py +++ b/dashboard/dashboard/mongo2elastic/main.py @@ -91,10 +91,16 @@ class DocumentVerification(object): return self.skip def _fix_date(self, date_string): + if date_string == 'None': + return None if isinstance(date_string, dict): return date_string['$date'] - else: - return date_string[:-3].replace(' ', 'T') + 'Z' + if 'T' not in date_string: + date_string = date_string[:-3].replace(' ', 'T') + if not date_string.endswith('Z'): + date_string += 'Z' + + return date_string class DocumentPublisher(object): diff --git a/dashboard/dashboard/qtip/__init__.py b/dashboard/dashboard/qtip/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/dashboard/dashboard/qtip/__init__.py diff --git a/dashboard/dashboard/qtip/testcases.yaml b/dashboard/dashboard/qtip/testcases.yaml new file mode 100644 index 0000000..cd337cd --- /dev/null +++ b/dashboard/dashboard/qtip/testcases.yaml @@ -0,0 +1,28 @@ +qtip: + - + name: compute_test_suite + format: qpi + test_family: compute + visualizations: + - + name: qpi + fields: + - field: details.index + - + name: network_test_suite + test_family: network + format: qpi + visualizations: + - + name: qpi + fields: + - field: details.index + - + name:storage_test_suite + format: qpi + test_family: storage + visualizations: + - + name: qpi + fields: + - field: details.index |