diff options
43 files changed, 7333 insertions, 567 deletions
diff --git a/api/resources/env_action.py b/api/resources/env_action.py index 8955f3cb6..2d3496cbc 100644 --- a/api/resources/env_action.py +++ b/api/resources/env_action.py @@ -9,15 +9,16 @@ from __future__ import absolute_import import errno -import json import logging import os import subprocess import threading import time import uuid +import glob from six.moves import configparser +from oslo_serialization import jsonutils from api import conf as api_conf from api.database.handler import AsyncTaskHandler @@ -67,9 +68,13 @@ def _create_grafana(task_id): def _create_dashboard(): url = 'http://admin:admin@%s:3000/api/dashboards/db' % api_conf.GATEWAY_IP - with open('../dashboard/ping_dashboard.json') as dashboard_json: - data = json.load(dashboard_json) - HttpClient().post(url, data) + path = os.path.join(config.YARDSTICK_REPOS_DIR, 'dashboard', + '*dashboard.json') + + for i in sorted(glob.iglob(path)): + with open(i) as f: + data = jsonutils.load(f) + HttpClient().post(url, data) def _create_data_source(): @@ -248,7 +253,7 @@ def _get_remote_rc_file(rc_file, installer_ip, installer_type): cmd = [os_fetch_script, '-d', rc_file, '-i', installer_type, '-a', installer_ip] p = subprocess.Popen(cmd, stdout=subprocess.PIPE) - p.communicate()[0] + p.communicate() if p.returncode != 0: logger.debug('Failed to fetch credentials from installer') diff --git a/api/utils/common.py b/api/utils/common.py index 1c800ce49..3e9bf8f8b 100644 --- a/api/utils/common.py +++ b/api/utils/common.py @@ -33,7 +33,7 @@ def get_command_list(command_list, opts, args): command_list.append(args) - command_list.extend(('--{}'.format(k) for k in opts if 'task-args' != k)) + command_list.extend(('--{}'.format(k) for k in opts if k != 'task-args')) task_args = opts.get('task-args', '') if task_args: diff --git a/api/utils/influx.py b/api/utils/influx.py index 275c63a24..08996b9c9 100644 --- a/api/utils/influx.py +++ b/api/utils/influx.py @@ -24,7 +24,7 @@ def get_data_db_client(): try: parser.read(conf.OUTPUT_CONFIG_FILE_PATH) - if 'influxdb' != parser.get('DEFAULT', 'dispatcher'): + if parser.get('DEFAULT', 'dispatcher') != 'influxdb': raise RuntimeError return _get_client(parser) diff --git a/dashboard/KVMFORNFV-Cyclictest b/dashboard/KVMFORNFV-Cyclictest index 36c1ec778..1a82c5466 100644 --- a/dashboard/KVMFORNFV-Cyclictest +++ b/dashboard/KVMFORNFV-Cyclictest @@ -1,517 +1,573 @@ -{ - "id": 42, - "title": "KVMFORNFV-Cyclictest", - "tags": [ - "kvmfornfv-cyclictest" - ], - "style": "dark", - "timezone": "browser", - "editable": true, - "hideControls": false, - "sharedCrosshair": false, - "rows": [ - { - "collapse": false, - "editable": true, - "height": "", - "panels": [ - { - "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_KVMFORNFV_Cyclictest - Real time benchmark</center> </a></h5>\n<center>\n<p>Cyclictest is used to test the guest timer latency with idle host/guest,Host memory stress and Host CPU stress.\nFor more information see <a style=\"color:#31A7D3\"; href=\"https://wiki.opnfv.org/display/kvm/KVM4NFV+Test++Environment\">Cyclictest</a></p>\n</center>\n\n\n", - "editable": true, - "error": false, - "id": 6, - "isNew": true, - "links": [], - "mode": "html", - "span": 12, - "title": "", - "type": "text" - } - ], - "title": "New row" - }, - { - "collapse": false, - "editable": true, - "height": "", - "panels": [ - { - "content": "", - "editable": true, - "error": false, - "id": 9, - "isNew": true, - "links": [], - "mode": "markdown", - "span": 12, - "style": {}, - "title": "Test Case Execution", - "type": "text" - } - ], - "title": "New row" - }, - { - "collapse": false, - "editable": true, - "height": "300px", - "panels": [ - { - "aliasColors": { - "kvmfornfv_cyclictest_idle_idle.avg": "#7EB26D", - "kvmfornfv_cyclictest_idle_idle.max": "#6ED0E0", - "kvmfornfv_cyclictest_idle_idle.min": "#EAB839" - }, - "bars": false, - "datasource": "yardstick-vtc", - "decimals": null, - "editable": true, - "error": false, - "fill": 0, - "grid": { - "threshold1": null, - "threshold1Color": "rgba(216, 200, 27, 0.27)", - "threshold2": null, - "threshold2Color": "rgba(234, 112, 112, 0.22)" - }, - "id": 10, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "minSpan": 12, - "nullPointMode": "connected", - "percentage": false, - "pointradius": 2, - "points": true, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "kvmfornfv_cyclictest_idle_idle.min", - "yaxis": 1 - } - ], - "span": 12, - "stack": false, - "steppedLine": false, - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "kvmfornfv_cyclictest_idle_idle", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "avg" - ], - "type": "field" - } - ], - [ - { - "params": [ - "max" - ], - "type": "field" - } - ], - [ - { - "params": [ - "min" - ], - "type": "field" - } - ] - ], - "tags": [] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "kvmfornfv_cyclictest_idle_idle", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "show": true - }, - "yaxes": [ - { - "format": "µs", - "label": "Latency", - "logBase": 10, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] - }, - { - "aliasColors": { - "kvmfornfv_cyclictest_idle_idle.avg": "#7EB26D" - }, - "bars": false, - "datasource": "yardstick-vtc", - "decimals": null, - "editable": true, - "error": false, - "fill": 2, - "grid": { - "threshold1": 100, - "threshold1Color": "rgb(227, 225, 213)", - "threshold2": null, - "threshold2Color": "rgba(199, 177, 177, 0)", - "thresholdLine": true - }, - "hideTimeOverride": false, - "id": 11, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sideWidth": 100, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "minSpan": 5, - "nullPointMode": "connected", - "percentage": false, - "pointradius": 2, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "span": 6, - "stack": false, - "steppedLine": false, - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "kvmfornfv_cyclictest_idle_idle", - "policy": "default", - "query": "SELECT \"avg\" FROM \"kvmfornfv_cyclictest_idle_idle\" WHERE $timeFilter", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "avg" - ], - "type": "field" - } - ] - ], - "tags": [] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "AVG Graph", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "show": true - }, - "yaxes": [ - { - "format": "µs", - "label": "Latency", - "logBase": 1024, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] - }, - { - "aliasColors": { - "kvmfornfv_cyclictest_idle_idle.min": "#EAB839" - }, - "bars": false, - "datasource": "yardstick-vtc", - "editable": true, - "error": false, - "fill": 2, - "grid": { - "threshold1": 50, - "threshold1Color": "#ebe9d9", - "threshold2": null, - "threshold2Color": "#e9d8d8", - "thresholdLine": true - }, - "id": 12, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "minSpan": 5, - "nullPointMode": "connected", - "percentage": false, - "pointradius": 2, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "span": 6, - "stack": false, - "steppedLine": false, - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "kvmfornfv_cyclictest_idle_idle", - "policy": "default", - "query": "SELECT \"min\" FROM \"kvmfornfv_cyclictest_idle_idle\" WHERE $timeFilter", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "min" - ], - "type": "field" - } - ] - ], - "tags": [] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "MIN Graph", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "show": true - }, - "yaxes": [ - { - "format": "µs", - "label": "Latency", - "logBase": 1024, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] - }, - { - "aliasColors": { - "kvmfornfv_cyclictest_idle_idle.max": "#6ED0E0" - }, - "bars": false, - "datasource": "yardstick-vtc", - "editable": true, - "error": false, - "fill": 2, - "grid": { - "threshold1": 1000, - "threshold1Color": "#e9e7d6", - "threshold2": null, - "threshold2Color": "rgba(234, 112, 112, 0.22)", - "thresholdLine": true - }, - "id": 13, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "minSpan": 5, - "nullPointMode": "connected", - "percentage": false, - "pointradius": 2, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "span": 6, - "stack": false, - "steppedLine": false, - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "hide": false, - "measurement": "kvmfornfv_cyclictest_idle_idle", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "max" - ], - "type": "field" - } - ] - ], - "tags": [] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "MAX Graph", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "show": true - }, - "yaxes": [ - { - "format": "µs", - "label": "Latency", - "logBase": 1024, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] - } - ], - "title": "Row" - } - ], - "time": { - "from": "now-7d", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "templating": { - "list": [] - }, - "annotations": { - "list": [] - }, - "refresh": "1d", - "schemaVersion": 12, - "version": 1, - "links": [], - "gnetId": null -} +{
+ "id": 42,
+ "title": "KVMFORNFV-Cyclictest",
+ "tags": [
+ "kvmfornfv-cyclictest"
+ ],
+ "style": "dark",
+ "timezone": "browser",
+ "editable": true,
+ "hideControls": false,
+ "sharedCrosshair": false,
+ "rows": [
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "",
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_KVMFORNFV_Cyclictest - Real time benchmark</center> </a></h5>\n<center>\n<p>cyclictest used to test the guest timer latency with idle host/guest,Host memory stress and Host CPU stress.\nFor more information see <a style=\"color:#31A7D3\"; href=\"https://wiki.opnfv.org/display/kvm/KVM4NFV+Test++Environment\">Cyclictest</a></p>\n</center>\n\n\n",
+ "editable": true,
+ "error": false,
+ "id": 6,
+ "isNew": true,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "title": "New row"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "",
+ "panels": [
+ {
+ "content": "",
+ "editable": true,
+ "error": false,
+ "id": 9,
+ "isNew": true,
+ "links": [],
+ "mode": "markdown",
+ "span": 12,
+ "style": {},
+ "title": "Test Case Execution",
+ "type": "text"
+ }
+ ],
+ "title": "New row"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "300px",
+ "panels": [
+ {
+ "aliasColors": {
+ "kvmfornfv_cyclictest_idle_idle.avg": "#7EB26D",
+ "kvmfornfv_cyclictest_idle_idle.max": "#6ED0E0",
+ "kvmfornfv_cyclictest_idle_idle.min": "#EAB839"
+ },
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "decimals": null,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 10,
+ "isNew": true,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 2,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "kvmfornfv_cyclictest_idle_idle.min",
+ "yaxis": 1
+ }
+ ],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "kvmfornfv_cyclictest_idle_idle",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "min"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "kvmfornfv_cyclictest_idle_idle",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "Latency",
+ "logBase": 10,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {
+ "kvmfornfv_cyclictest_idle_idle.avg": "#7EB26D"
+ },
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "decimals": null,
+ "editable": true,
+ "error": false,
+ "fill": 2,
+ "grid": {
+ "threshold1": 100,
+ "threshold1Color": "rgb(227, 225, 213)",
+ "threshold2": null,
+ "threshold2Color": "rgba(199, 177, 177, 0)",
+ "thresholdLine": true
+ },
+ "hideTimeOverride": false,
+ "id": 11,
+ "isNew": true,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "sideWidth": 100,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 2,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "kvmfornfv_cyclictest_cpustress_idle",
+ "yaxis": 1
+ }
+ ],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "kvmfornfv_cyclictest_cpustress_idle",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "min"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "kvmfornfv_cyclictest_cpustress_idle",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "Latency",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {
+ "kvmfornfv_cyclictest_idle_idle.min": "#EAB839"
+ },
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "editable": true,
+ "error": false,
+ "fill": 2,
+ "grid": {
+ "threshold1": 50,
+ "threshold1Color": "#ebe9d9",
+ "threshold2": null,
+ "threshold2Color": "#e9d8d8",
+ "thresholdLine": true
+ },
+ "id": 12,
+ "isNew": true,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 2,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "kvmfornfv_cyclictest_memorystress_idle.min",
+ "yaxis": 1
+ }
+ ],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "kvmfornfv_cyclictest_memorystress_idle",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "kvmfornfv_cyclictest_memorystress_idle",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "Latency",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {
+ "kvmfornfv_cyclictest_idle_idle.max": "#6ED0E0"
+ },
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "editable": true,
+ "error": false,
+ "fill": 2,
+ "grid": {
+ "threshold1": 1000,
+ "threshold1Color": "#e9e7d6",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)",
+ "threshold3": 50,
+ "threshold3Color": "#e9e7d6",
+ "thresholdLine": true
+ },
+ "id": 13,
+ "isNew": true,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 2,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "hide": false,
+ "measurement": "kvmfornfv_cyclictest_iostress_idle",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "kvmfornfv_cyclictest_iostress_idle",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "label": "Latency",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "title": "Row"
+ }
+ ],
+ "time": {
+ "from": "now-7d",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "templating": {
+ "list": []
+ },
+ "annotations": {
+ "list": []
+ },
+ "refresh": "1d",
+ "schemaVersion": 12,
+ "version": 10,
+ "links": [],
+ "gnetId": null
+}
diff --git a/dashboard/os-nosdn-nofeature-ha.dashboard.json b/dashboard/os-nosdn-nofeature-ha.dashboard.json new file mode 100644 index 000000000..e40e340b8 --- /dev/null +++ b/dashboard/os-nosdn-nofeature-ha.dashboard.json @@ -0,0 +1,5535 @@ +{ + "meta": { + "type": "db", + "canSave": true, + "canEdit": true, + "canStar": true, + "slug": null, + "expires": null, + "created": null, + "updated": null, + "updatedBy": "admin", + "createdBy": "admin", + "version": 7 + }, + "dashboard": { + "id": null, + "title": "os-nosdn-nofeature-ha", + "tags": [ + "Scenarios" + ], + "style": "dark", + "timezone": "browser", + "editable": true, + "hideControls": false, + "sharedCrosshair": false, + "rows": [ + { + "collapse": false, + "editable": true, + "height": "", + "panels": [], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC002 - Network latency (Ping)</center> </a></h5>\n<center>\n<p>Evaluation of network latency (RTT - round trip time) between two VM instances running on different physical blades.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc002.html\">TC002</a></p>\n</center>", + "editable": true, + "error": false, + "id": 9, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "300px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 1, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - $tag_task_id", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "version" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc002", + "policy": "default", + "query": "SELECT \"rtt.ares\" FROM \"opnfv_yardstick_tc002\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.ares" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "deploy_scenario", + "operator": "=~", + "value": "/^$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/^$VERSION$/" + }, + { + "condition": "AND", + "key": "pod_name", + "operator": "=~", + "value": "/^$POD$/" + } + ] + }, + { + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": true, + "measurement": "opnfv_yardstick_tc005", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "write_lat" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Network Latency - RTT", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "showTitle": false, + "title": "Row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC005 - Storage Performance (Fio)</center> </a></h5>\n<center>\n<p>To evaluate the IaaS storage performance with regards to IOPS, throughput and latency. \nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc005.html\">TC005</a></p>\n</center>\n", + "editable": true, + "error": false, + "id": 13, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 10, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc005", + "policy": "default", + "query": "SELECT \"read_bw\" FROM \"opnfv_yardstick_tc005\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "read_bw" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - r_iops", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc005", + "policy": "default", + "query": "SELECT \"read_iops\" FROM \"opnfv_yardstick_tc005\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "read_iops" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Storage Performance", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC010 - Memory Latency (Lmbench)</center> </a></h5>\n<center>\n<p>Measure the memory read latency for varying memory sizes and strides. Whole memory hierarchy is measured including all levels of cache.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc010.html\">TC010</a></p>\n</center>\n", + "editable": true, + "error": false, + "id": 49, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 15, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc010", + "policy": "default", + "query": "SELECT \"latencies0.latency\" FROM \"opnfv_yardstick_tc010\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "latencies0.latency" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory Latency (Lmbench)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC011 - Packet delay variation (Iperf3)</center> </a></h5>\n<center>\n<p>Measure the packet delay variation sending the packets from one VM to the other.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc011.html\">TC011</a></p>\n</center>\n", + "editable": true, + "error": false, + "id": 48, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 14, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc011", + "policy": "default", + "query": "SELECT \"end.sum.jitter_ms\" FROM \"opnfv_yardstick_tc011\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "end.sum.jitter_ms" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Packet delay variation (Iperf3)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC012 - Memory read and write bandwidth</center> </a></h5>\n<center>\n<p>Visualisation of memory read and write bandwidth using lmbench as the measurement tool.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc012.html\">TC012</a></p>\n</center>", + "editable": true, + "error": false, + "id": 50, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 11, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc012", + "policy": "default", + "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory read/write bandwidth trend", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC063 - Disk size, block size and disk utilization</center> </a></h5>\n<center>\n<p>Visualisation of disk size, block size and disk utilization using fdisk and iostat.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc063.html\">TC063</a></p>\n</center>", + "editable": true, + "error": false, + "id": 51, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 16, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc063", + "policy": "default", + "query": "SELECT \"Total disk size in bytes\" FROM \"opnfv_yardstick_tc063\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Total disk size in bytes" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - r_iops", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc063", + "policy": "default", + "query": "SELECT \"Number of devices\" FROM \"opnfv_yardstick_tc063\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Number of devices" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "tc063: Disk size, block size and disk utilization", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC063 - Disk size, block size and disk utilization</center> </a></h5>\n<center>\n<p>Visualisation of disk size, block size and disk utilization using fdisk and iostat.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc063.html\">TC063</a></p>\n</center>", + "editable": true, + "error": false, + "id": 52, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 17, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc014", + "policy": "default", + "query": "SELECT \"single_score\" FROM \"opnfv_yardstick_tc014\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "single_score" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "TC014 - Processor Speed (unixbench)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC037 - Network Latency, Throughput, Packet Loss and CPU Load</center> </a></h5>\n<center>\n<p>Visualisation of network latency (RTT - round trip time), packet throughput and CPU load when doing variations to the amount of UDP flows between two VM instances running on different physical blades.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc037.html\">TC037</a></p>\n</center>", + "editable": true, + "error": false, + "id": 19, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 20, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "12h" + ], + "type": "time" + }, + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT mean(\"packets_per_second\") FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY time(12h), \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Throughput mean trend", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 21, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "12h" + ], + "type": "time" + }, + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT mean(\"rtt.poseidon\") FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY time(12h), \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.poseidon" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "RTT mean trend", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 22, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT \"flows\" FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "flows" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT \"packets_per_second\" FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "No. flows & packet throughput - pktgen", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 23, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT \"packets_per_second\" FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Packet throughput - pktgen", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 24, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc037", + "policy": "default", + "query": "SELECT \"rtt.poseidon\" FROM \"opnfv_yardstick_tc037\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.poseidon" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Round-trip time - ping", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC043 - Network latency (Ping)</center> </a></h5>\n<center>\n<p>Evaluation of network latency (RTT - round trip time) between two nodes running on one pod.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc043.html\">TC043</a></p>\n</center>\n\n\n", + "editable": true, + "error": false, + "id": 25, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 26, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc043", + "policy": "default", + "query": "SELECT \"rtt.node2\" FROM \"opnfv_yardstick_tc043\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.node2" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Network Latency - RTT", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC055 - Number of cores and threads, available memory size and cache size</center> </a></h5>\n<center>\n<p>Visualisation of Number of cores and threads, available memory size and cache size fetched from /proc/cpuinfo.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc055.html\">TC055</a></p>\n</center>\n", + "editable": true, + "error": false, + "id": 27, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 28, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Cpu_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Cpu_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Core_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Core_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Core_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Core_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Thread_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Thread_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Number of cores and threads, available memory size and cache size", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC069 - Memory read and write bandwidth (RAMspeed)</center> </a></h5>\n<center>\n<p>Visualisation of memory read and write bandwidth using RAMspeed as the measurement tool.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc069.html\">TC069</a></p>\n</center>", + "editable": true, + "error": false, + "id": 29, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 30, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result0.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result0.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result1.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result1.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result2.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result2.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result3.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result3.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result4.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result4.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result5.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result5.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result6.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result6.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result7.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "H", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result7.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result8.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "I", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result8.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc069", + "policy": "default", + "query": "SELECT \"Result9.Bandwidth(MBps)\" FROM \"opnfv_yardstick_tc069\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"", + "rawQuery": false, + "refId": "J", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Result9.Bandwidth(MBps)" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Number of cores and threads, available memory size and cache size", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 32, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Cpu_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Cpu_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Core_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Core_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Core_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Core_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc055", + "policy": "default", + "query": "SELECT \"Thread_number\" FROM \"opnfv_yardstick_tc055\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Thread_number" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Number of cores and threads, available memory size and cache size", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC070 - Network Latency, Throughput, Packet Loss and Memory Utilization</center> </a></h5>\n<center>\n<p>Visualisation of network latency (RTT - round trip time), packet throughput and memory utilization when doing variations to the amount of UDP flows between two VM instances running on different physical blades.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc070.html\">TC070</a></p>\n</center>", + "editable": true, + "error": false, + "id": 31, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 38, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "24h" + ], + "type": "time" + }, + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT mean(\"packets_per_second\") FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY time(24h), \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Throughput mean trend", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 39, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "24h" + ], + "type": "time" + }, + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT mean(\"rtt.poseidon\") FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY time(24h), \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.poseidon" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "RTT mean trend", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 40, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"flows\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "flows" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"packets_per_second\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "No. flows & packet throughput - pktgen", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 41, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"packets_per_second\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_per_second" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Packet throughput - pktgen", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 42, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"rtt.poseidon\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "rtt.poseidon" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Round-trip time - ping", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 43, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.used\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.used" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.free\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.free" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory Utilization - free", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC071 - Network Latency, Throughput, Packet Loss and Cache Utilization</center> </a></h5>\n<center>\n<p>Visualisation of network latency (RTT - round trip time), packet throughput and Cache utilization when doing variations to the amount of UDP flows between two VM instances running on different physical blades.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc071.html\">TC071</a></p>\n</center>", + "editable": true, + "error": false, + "id": 34, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 44, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.used\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.used" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.free\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.free" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory Utilization - free", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC072 - Network Latency, Throughput, Packet Loss and Network Utilization</center> </a></h5>\n<center>\n<p>Visualisation of network latency (RTT - round trip time), packet throughput and Network interface utilization when doing variations to the amount of UDP flows between two VM instances running on different physical blades.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc072.html\">TC072</a></p>\n</center>", + "editable": true, + "error": false, + "id": 36, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 45, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.used\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.used" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc070", + "policy": "default", + "query": "SELECT \"average.free\" FROM \"opnfv_yardstick_tc070\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average.free" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory Utilization - free", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "25px", + "panels": [ + { + "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_Yardstick_TC074 - Storage Performance Benchmarking for NFVI (Storperf) </center> </a></h5>\n<center>\n<p>Measure block and object storage performance in an NFVI.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/yardstick/colorado/docs/userguide/opnfv_yardstick_tc074.html\">TC074</a></p>\n</center>", + "editable": true, + "error": false, + "id": 47, + "isNew": true, + "links": [], + "mode": "html", + "span": 12, + "style": {}, + "title": "", + "type": "text" + } + ], + "title": "New row" + }, + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": "yardstick", + "decimals": 2, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "threshold1": 2.5, + "threshold1Color": "rgba(28, 149, 89, 0.27)", + "threshold2": 2, + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "hideTimeOverride": false, + "id": 46, + "interval": "", + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": false, + "sort": "avg", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "percentage": true, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc074", + "policy": "default", + "query": "SELECT \"_ssd_preconditioning.queue-depth.8.block-size.16384.duration\" FROM \"opnfv_yardstick_tc074\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "_ssd_preconditioning.queue-depth.8.block-size.16384.duration" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc074", + "policy": "default", + "query": "SELECT \"_warm_up.queue-depth.8.block-size.16384.duration\" FROM \"opnfv_yardstick_tc074\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "_warm_up.queue-depth.8.block-size.16384.duration" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + }, + { + "alias": "$tag_pod_name - $tag_deploy_scenario - flows", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "pod_name" + ], + "type": "tag" + }, + { + "params": [ + "deploy_scenario" + ], + "type": "tag" + }, + { + "params": [ + "task_id" + ], + "type": "tag" + } + ], + "hide": false, + "measurement": "opnfv_yardstick_tc074", + "policy": "default", + "query": "SELECT \"wr.queue-depth.4.block-size.4096.duration\" FROM \"opnfv_yardstick_tc074\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND \"version\" =~ /$VERSION$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "wr.queue-depth.4.block-size.4096.duration" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "pod_name", + "operator": "=~", + "value": "/$POD$/" + }, + { + "condition": "AND", + "key": "deploy_scenario", + "operator": "=~", + "value": "/$SCENARIO$/" + }, + { + "condition": "AND", + "key": "version", + "operator": "=~", + "value": "/$VERSION$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Memory Utilization - free", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "show": true + }, + "yaxes": [ + { + "format": "ms", + "label": "RTT", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "title": "New row" + } + ], + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "templating": { + "list": [ + { + "allFormat": "regex values", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": "yardstick", + "hide": 0, + "includeAll": true, + "multi": false, + "multiFormat": "regex values", + "name": "SCENARIO", + "options": [ + { + "text": "All", + "value": "$__all", + "selected": true + } + ], + "query": "SHOW TAG VALUES WITH KEY = \"deploy_scenario\"", + "refresh": 1, + "regex": "", + "type": "query" + }, + { + "allFormat": "regex values", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": "yardstick", + "hide": 0, + "includeAll": true, + "multi": false, + "multiFormat": "regex values", + "name": "VERSION", + "options": [ + { + "text": "All", + "value": "$__all", + "selected": true + } + ], + "query": "SHOW TAG VALUES WITH KEY = \"version\"", + "refresh": 1, + "regex": "(master|colorado|danube)", + "type": "query" + }, + { + "allFormat": "regex values", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": "yardstick", + "hide": 0, + "hideLabel": false, + "includeAll": true, + "label": "", + "multi": true, + "multiFormat": "regex values", + "name": "POD", + "options": [ + { + "text": "All", + "value": "$__all", + "selected": true + } + ], + "query": "SHOW TAG VALUES WITH KEY = \"pod_name\"", + "refresh": 1, + "regex": "", + "type": "query", + "useTags": false + } + ] + }, + "annotations": { + "list": [] + }, + "refresh": "5s", + "schemaVersion": 12, + "version": 0, + "links": [], + "gnetId": null + } +}
\ No newline at end of file diff --git a/docs/userguide/01-introduction.rst b/docs/userguide/01-introduction.rst index 9d9cf0fb5..0e0eea002 100755 --- a/docs/userguide/01-introduction.rst +++ b/docs/userguide/01-introduction.rst @@ -46,18 +46,27 @@ This document consists of the following chapters: * Chapter :doc:`04-vtc-overview` provides information on the :term:`VTC`. * Chapter :doc:`05-apexlake_installation` provides instructions to install the - experimental framework *ApexLake* and chapter :doc:`06-apexlake_api` explains - how this framework is integrated in *Yardstick*. + experimental framework *ApexLake* -* Chapter :doc:`07-installation` provides instructions to install *Yardstick*. +* Chapter :doc:`06-apexlake_api` explains how this framework is integrated in + *Yardstick*. -* Chapter :doc:`08-yardstick_plugin` provides information on how to integrate +* Chapter :doc:`07-nsb-overview` describes the methodology implemented by the + yardstick - Network service benchmarking to test real world usecase for a + given VNF + +* Chapter :doc:`08-nsb_installation` provides instructions to install + *Yardstick - Network service benchmarking testing*. + +* Chapter :doc:`09-installation` provides instructions to install *Yardstick*. + +* Chapter :doc:`10-yardstick_plugin` provides information on how to integrate other OPNFV testing projects into *Yardstick*. -* Chapter :doc:`09-result-store-InfluxDB` provides inforamtion on how to run +* Chapter :doc:`11-result-store-InfluxDB` provides inforamtion on how to run plug-in test cases and store test results into community's InfluxDB. -* Chapter :doc:`10-list-of-tcs` includes a list of available Yardstick test +* Chapter :doc:`12-list-of-tcs` includes a list of available Yardstick test cases. diff --git a/docs/userguide/07-nsb-overview.rst b/docs/userguide/07-nsb-overview.rst new file mode 100644 index 000000000..19719f1a7 --- /dev/null +++ b/docs/userguide/07-nsb-overview.rst @@ -0,0 +1,177 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, 2016-2017 Intel Corporation. + +===================================== +Network Services Benchmarking (NSB) +===================================== + +Abstract +======== + +.. _Yardstick: https://wiki.opnfv.org/yardstick + +This chapter provides an overview of the NSB, a contribution to OPNFV +Yardstick_ from Intel. + +Overview +======== + +GOAL: Extend Yardstick to perform real world VNFs and NFVi Characterization and +benchmarking with repeatable and deterministic methods. + +The Network Service Benchmarking (NSB) extends the yardstick framework to do +VNF characterization and benchmarking in three different execution +environments viz., bare metal i.e. native Linux environment, standalone virtual +environment and managed virtualized environment (e.g. Open stack etc.). +It also brings in the capability to interact with external traffic generators +both hardware & software based for triggering and validating the traffic +according to user defined profiles. + +NSB extension includes: + • Generic data models of Network Services, based on ETSI specs + • New Standalone context for VNF testing like SRIOV, OVS, OVS-DPDK etc + • Generic VNF configuration models and metrics implemented with Python + classes + • Traffic generator features and traffic profiles + • L1-L3 state-less traffic profiles + • L4-L7 state-full traffic profiles + • Tunneling protocol / network overlay support + • Test case samples + • Ping + • Trex + • vPE,vCGNAT, vFirewall etc - ipv4 throughput, latency etc + • Traffic generators like Trex, ab/nginx, ixia, iperf etc + • KPIs for a given use case: + • System agent support for collecting NFvi KPI. This includes: + o CPU statistic + o Memory BW + o OVS-DPDK Stats + • Network KPIs – eg, inpackets, outpackets, thoughput, latency etc + • VNF KPIs – packet_in, packet_drop, packet_fwd etc + +Architecture +============ +The Network Service (NS) defines a set of Virtual Network Functions (VNF) +connected together using NFV infrastructure. + +The Yardstick NSB extension can support multiple VNFs created by different +vendors including traffic generators. Every VNF being tested has its +own data model. The Network service defines a VNF modelling on base of performed +network functionality. The part of the data model is a set of the configuration +parameters, number of connection points used and flavor including core and +memory amount. + +The ETSI defines a Network Service as a set of configurable VNFs working in +some NFV Infrastructure connecting each other using Virtual Links available +through Connection Points. The ETSI MANO specification defines a set of +management entities called Network Service Descriptors (NSD) and +VNF Descriptors (VNFD) that define real Network Service. The picture below +makes an example how the real Network Operator use-case can map into ETSI +Network service definition + +Network Service framework performs the necessary test steps. It may involve + o Interacting with traffic generator and providing the inputs on traffic + type / packet structure to generate the required traffic as per the + test case. Traffic profiles will be used for this. + o Executing the commands required for the test procedure and analyses the + command output for confirming whether the command got executed correctly + or not. E.g. As per the test case, run the traffic for the given + time period / wait for the necessary time delay + o Verify the test result. + o Validate the traffic flow from SUT + o Fetch the table / data from SUT and verify the value as per the test case + o Upload the logs from SUT onto the Test Harness server + o Read the KPI’s provided by particular VNF + +Components of Network Service +------------------------------ + +* *Models for Network Service benchmarking*: The Network Service benchmarking + requires the proper modelling approach. The NSB provides models using Python + files and defining of NSDs and VNFDs. + +The benchmark control application being a part of OPNFV yardstick can call +that python models to instantiate and configure the VNFs. Depending on +infrastructure type (bare-metal or fully virtualized) that calls could be +made directly or using MANO system. + +* *Traffic generators in NSB*: Any benchmark application requires a set of + traffic generator and traffic profiles defining the method in which traffic + is generated. + +The Network Service benchmarking model extends the Network Service +definition with a set of Traffic Generators (TG) that are treated +same way as other VNFs being a part of benchmarked network service. +Same as other VNFs the traffic generator are instantiated and terminated. + +Every traffic generator has own configuration defined as a traffic profile and +a set of KPIs supported. The python models for TG is extended by specific calls +to listen and generate traffic. + +* *The stateless TREX traffic generator*: The main traffic generator used as + Network Service stimulus is open source TREX tool. + +The TREX tool can generate any kind of stateless traffic. + +.. code-block:: console + + +--------+ +-------+ +--------+ + | | | | | | + | Trex | ---> | VNF | ---> | Trex | + | | | | | | + +--------+ +-------+ +--------+ + +Supported testcases scenarios: +• Correlated UDP traffic using TREX traffic generator and replay VNF. + o using different IMIX configuration like pure voice, pure video traffic etc + o using different number IP flows like 1 flow, 1K, 16K, 64K, 256K, 1M flows + o Using different number of rules configured like 1 rule, 1K, 10K rules + +For UDP correlated traffic following Key Performance Indicators are collected +for every combination of test case parameters: + • RFC2544 throughput for various loss rate defined (1% is a default) + +Graphical Overview +================== + +NSB Testing with yardstick framework facilitate performance testing of various +VNFs provided. + +.. code-block:: console + +-----------+ + | | +-----------+ + | vPE | ->|TGen Port 0| + | TestCase | | +-----------+ + | | | + +-----------+ +------------------+ +-------+ | + | | -- API --> | VNF | <---> + +-----------+ | Yardstick | +-------+ | + | Test Case | --> | NSB Testing | | + +-----------+ | | | + | | | | + | +------------------+ | + +-----------+ | +-----------+ + | Traffic | ->|TGen Port 1| + | patterns | +-----------+ + +-----------+ + Figure 1: Network Service - 2 server configuration + + +Install +======= + +run the nsb_install.sh with root privileges + +Run +=== + +source ~/.bash_profile +cd <yardstick_repo>/yardstick/cmd +sudo -E ./NSBperf.py --vnf vpe --test tc_baremetal_rfc2544_ipv4_1flow_64B.yaml + +Development Environment +======================= + +Ubuntu 14.04, Ubuntu 16.04 diff --git a/docs/userguide/08-nsb_installation.rst b/docs/userguide/08-nsb_installation.rst new file mode 100644 index 000000000..a390bb7d7 --- /dev/null +++ b/docs/userguide/08-nsb_installation.rst @@ -0,0 +1,253 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, 2016-2017 Intel Corporation. + +Yardstick - NSB Testing -Installation +===================================== + +Abstract +-------- + +Yardstick supports installation on Ubuntu 14.04 or via a Docker image. The +installation procedure on Ubuntu 14.04 or via the docker image are detailed in +the section below. + +The Network Service Benchmarking (NSB) extends the yardstick framework to do +VNF characterization and benchmarking in three different execution +environments viz., bare metal i.e. native Linux environment, standalone virtual +environment and managed virtualized environment (e.g. Open stack etc.). +It also brings in the capability to interact with external traffic generators +both hardware & software based for triggering and validating the traffic +according to user defined profiles. + +The steps needed to run Yardstick with NSB testing are: + +* Install Yardstick (NSB Testing). +* Setup pod.yaml describing Test topology +* Create the test configuration yaml file. +* Run the test case. + + +Prerequisites +------------- + +Refer chapter 08-instalaltion.rst for more information on yardstick +prerequisites + +Several prerequisites are needed for Yardstick(VNF testing): +* Python Modules: pyzmq, pika. +* flex +* bison +* build-essential +* automake +* libtool +* librabbitmq-dev +* rabbitmq-server +* collectd +* intel-cmt-cat + +Installing Yardstick on Ubuntu 14.04 +------------------------------------ + +.. _install-framework: + +You can install Yardstick framework directly on Ubuntu 14.04 or in an Ubuntu +14.04 Docker image. No matter which way you choose to install Yardstick +framework, the following installation steps are identical. + +If you choose to use the Ubuntu 14.04 Docker image, You can pull the Ubuntu +14.04 Docker image from Docker hub: + +:: + + docker pull ubuntu:14.04 + +Installing Yardstick framework +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Download source code and install python dependencies: + +:: + + git clone https://gerrit.opnfv.org/gerrit/yardstick + cd yardstick + ./nsb_setup.sh + +It will automatically download all the packages needed for NSB Testing setup. + +System Topology: +----------------- + +.. code-block:: console + + +----------+ +----------+ + | | | | + | | (0)----->(0) | Ping/ | + | TG1 | | vPE/ | + | | | 2Trex | + | | (1)<-----(1) | | + +----------+ +----------+ + trafficgen_1 vnf + + +OpenStack parameters and credentials +------------------------------------ + +Environment variables +^^^^^^^^^^^^^^^^^^^^^ +Before running Yardstick (NSB Testing) it is necessary to export traffic +generator libraries. + +:: + source ~/.bash_profile + +Config yardstick conf +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +cp ./etc/yardstick/yardstick.conf.sample /etc/yardstick/yardstick.conf + +vi /etc/yardstick/yardstick.conf + +Config yardstick.conf +:: + + [DEFAULT] + debug = True + dispatcher = influxdb + + [dispatcher_influxdb] + timeout = 5 + target = http://{YOUR_IP_HERE}:8086 + db_name = yardstick + username = root + password = root + + [nsb] + trex_path=/opt/nsb_bin/trex/scripts + bin_path=/opt/nsb_bin + + +Config pod.yaml describing Topology +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Before executing Yardstick test cases, make sure that pod.yaml reflects the +topology and update all the required fields. + +copy /etc/yardstick/nodes/pod.yaml.nsb.example to /etc/yardstick/nodes/pod.yaml + +Config pod.yaml +:: + nodes: + - + name: trafficgen_1 + role: TrafficGen + ip: 1.1.1.1 + user: root + password: r00t + interfaces: + xe0: # logical name from topology.yaml and vnfd.yaml + vpci: "0000:07:00.0" + driver: i40e # default kernel driver + dpdk_port_num: 0 + local_ip: "152.16.100.20" + netmask: "255.255.255.0" + local_mac: "00:00:00:00:00:01" + xe1: # logical name from topology.yaml and vnfd.yaml + vpci: "0000:07:00.1" + driver: i40e # default kernel driver + dpdk_port_num: 1 + local_ip: "152.16.40.20" + netmask: "255.255.255.0" + local_mac: "00:00.00:00:00:02" + + - + name: vnf + role: vnf + ip: 1.1.1.2 + user: root + password: r00t + host: 1.1.1.2 #BM - host == ip, virtualized env - Host - compute node + interfaces: + xe0: # logical name from topology.yaml and vnfd.yaml + vpci: "0000:07:00.0" + driver: i40e # default kernel driver + dpdk_port_num: 0 + local_ip: "152.16.100.19" + netmask: "255.255.255.0" + local_mac: "00:00:00:00:00:03" + + xe1: # logical name from topology.yaml and vnfd.yaml + vpci: "0000:07:00.1" + driver: i40e # default kernel driver + dpdk_port_num: 1 + local_ip: "152.16.40.19" + netmask: "255.255.255.0" + local_mac: "00:00:00:00:00:04" + routing_table: + - network: "152.16.100.20" + netmask: "255.255.255.0" + gateway: "152.16.100.20" + if: "xe0" + - network: "152.16.40.20" + netmask: "255.255.255.0" + gateway: "152.16.40.20" + if: "xe1" + nd_route_tbl: + - network: "0064:ff9b:0:0:0:0:9810:6414" + netmask: "112" + gateway: "0064:ff9b:0:0:0:0:9810:6414" + if: "xe0" + - network: "0064:ff9b:0:0:0:0:9810:2814" + netmask: "112" + gateway: "0064:ff9b:0:0:0:0:9810:2814" + if: "xe1" + +Enable yardstick virtual environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Before executing yardstick test cases, make sure to activate yardstick +python virtual environment + +:: + source /opt/nsb_bin/yardstick_venv/bin/activate + + +Examples and verifying the install +---------------------------------- + +It is recommended to verify that Yardstick was installed successfully +by executing some simple commands and test samples. Before executing yardstick +test cases make sure yardstick flavor and building yardstick-trusty-server +image can be found in glance and openrc file is sourced. Below is an example +invocation of yardstick help command and ping.py test sample: +:: + + yardstick –h + yardstick task start samples/ping.yaml + +Each testing tool supported by Yardstick has a sample configuration file. +These configuration files can be found in the **samples** directory. + +Default location for the output is ``/tmp/yardstick.out``. + + +Run Yardstick - Network Service Testcases +----------------------------------------- + +NS testing - using NSBperf CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:: + + source /opt/nsb_setup/yardstick_venv/bin/activate + PYTHONPATH: ". ~/.bash_profile" + cd <yardstick_repo>/yardstick/cmd + Execute command: ./NSPerf.py -h + ./NSBperf.py --vnf <selected vnf> --test <rfc test> + eg: ./NSBperf.py --vnf vpe --test tc_baremetal_rfc2544_ipv4_1flow_64B.yaml + +NS testing - using yardstick CLI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:: + + source /opt/nsb_setup/yardstick_venv/bin/activate + PYTHONPATH: ". ~/.bash_profile" + Go to test case forlder type we want to execute. + e.g. <yardstick repo>/samples/vnf_samples/nsut/<vnf>/ + run: yardstick --debug task start <test_case.yaml> diff --git a/docs/userguide/07-installation.rst b/docs/userguide/09-installation.rst index 9c2082a27..9c2082a27 100644 --- a/docs/userguide/07-installation.rst +++ b/docs/userguide/09-installation.rst diff --git a/docs/userguide/08-yardstick_plugin.rst b/docs/userguide/10-yardstick_plugin.rst index f16dedd02..f16dedd02 100644 --- a/docs/userguide/08-yardstick_plugin.rst +++ b/docs/userguide/10-yardstick_plugin.rst diff --git a/docs/userguide/09-result-store-InfluxDB.rst b/docs/userguide/11-result-store-InfluxDB.rst index a0bb48a80..a0bb48a80 100644 --- a/docs/userguide/09-result-store-InfluxDB.rst +++ b/docs/userguide/11-result-store-InfluxDB.rst diff --git a/docs/userguide/10-grafana.rst b/docs/userguide/12-grafana.rst index 416857b71..416857b71 100644 --- a/docs/userguide/10-grafana.rst +++ b/docs/userguide/12-grafana.rst diff --git a/docs/userguide/11-list-of-tcs.rst b/docs/userguide/13-list-of-tcs.rst index 8798a8f51..1b5806cd9 100644 --- a/docs/userguide/11-list-of-tcs.rst +++ b/docs/userguide/13-list-of-tcs.rst @@ -51,6 +51,7 @@ Generic NFVI Test Case Descriptions opnfv_yardstick_tc072.rst opnfv_yardstick_tc073.rst opnfv_yardstick_tc075.rst + opnfv_yardstick_tc076.rst OPNFV Feature Test Cases ======================== diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst index 60e1340ac..826a9d9bf 100644 --- a/docs/userguide/index.rst +++ b/docs/userguide/index.rst @@ -16,10 +16,12 @@ Yardstick Overview 04-vtc-overview 05-apexlake_installation 06-apexlake_api - 07-installation - 08-yardstick_plugin - 09-result-store-InfluxDB - 10-grafana - 11-list-of-tcs + 07-nsb-overview + 08-nsb_installation + 09-installation + 10-yardstick_plugin + 11-result-store-InfluxDB + 12-grafana + 13-list-of-tcs glossary references diff --git a/docs/userguide/opnfv_yardstick_tc076.rst b/docs/userguide/opnfv_yardstick_tc076.rst new file mode 100644 index 000000000..ac7bde794 --- /dev/null +++ b/docs/userguide/opnfv_yardstick_tc076.rst @@ -0,0 +1,61 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, Huawei Technologies Co.,Ltd and others. + +************************************* +Yardstick Test Case Description TC076 +************************************* + + ++-----------------------------------------------------------------------------+ +|Monitor Network Metrics | +| | ++--------------+--------------------------------------------------------------+ +|test case id | OPNFV_YARDSTICK_TC076_Monitor_Network_Metrics | +| | | ++--------------+--------------------------------------------------------------+ +|metric | IP datagram error rate, ICMP message error rate, | +| | TCP segment error rate and UDP datagram error rate | +| | | ++--------------+--------------------------------------------------------------+ +|test purpose | Monitor network metrics provided by the kernel in a host and | +| | calculate IP datagram error rate, ICMP message error rate, | +| | TCP segment error rate and UDP datagram error rate. | +| | | ++--------------+--------------------------------------------------------------+ +|configuration | file: opnfv_yardstick_tc076.yaml | +| | | +| | There is no additional configuration to be set for this TC. | +| | | ++--------------+--------------------------------------------------------------+ +|test tool | nstat | +| | | +| | nstat is a simple tool to monitor kernel snmp counters and | +| | network interface statistics. | +| | | ++--------------+--------------------------------------------------------------+ +|references | nstat man page | +| | | +| | ETSI-NFV-TST001 | +| | | ++--------------+--------------------------------------------------------------+ +|applicability | This test case is mainly for monitoring network metrics. | +| | | ++--------------+--------------------------------------------------------------+ +|pre_test | | +|conditions | | +| | | ++--------------+--------------------------------------------------------------+ +|test sequence | description and expected result | +| | | ++--------------+--------------------------------------------------------------+ +|step 1 | The pod is available. | +| | Nstat is invoked and logs are produced and stored. | +| | | +| | Result: Logs are stored. | +| | | ++--------------+--------------------------------------------------------------+ +|test verdict | None. | +| | | ++--------------+--------------------------------------------------------------+ diff --git a/install.sh b/install.sh index e9b6035d9..1807e2f43 100755 --- a/install.sh +++ b/install.sh @@ -11,6 +11,8 @@ apt-get update && apt-get install -y \ libssl-dev \ python \ python-dev \ + python-pip \ + flake8 libxml2-dev \ libxslt1-dev \ nginx \ diff --git a/samples/nstat.yaml b/samples/nstat.yaml new file mode 100644 index 000000000..0a5aa80c9 --- /dev/null +++ b/samples/nstat.yaml @@ -0,0 +1,35 @@ +--- + +schema: "yardstick:task:0.1" + +description: > + Sample benchmark task config file; + Monitor network metrics provided by the kernel in a host and calculate + IP datagram error rate, ICMP message error rate, TCP segment error rate and + UDP datagram error rate. + +scenarios: +- + type: Nstat + options: + duration: 60 + + host: poseidon.demo + + runner: + type: Iteration + iterations: 1 + +context: + name: demo + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + + servers: + poseidon: + floating_ip: true + + networks: + test: + cidr: '10.0.1.0/24' diff --git a/samples/ping_bottlenecks.yaml b/samples/ping_bottlenecks.yaml new file mode 100644 index 000000000..910bcff73 --- /dev/null +++ b/samples/ping_bottlenecks.yaml @@ -0,0 +1,55 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +schema: "yardstick:task:0.1" +description: > + bottlenecks stress test config file; + measure VMs latency using ping; +run_in_parallel: true +{% set stack_num = stack_num or 1 %} + +scenarios: +{% for num in range(stack_num) %} +- + type: Ping + options: + packetsize: 100 + host: demo1.demo{{num}} + target: demo2.demo{{num}} + runner: + type: Duration + duration: 60 + interval: 1 +{% endfor %} + +contexts: +{% for num in range(stack_num) %} +- + name: demo{{num}} + image: cirros-0.3.3 + flavor: yardstick-flavor + user: cirros + + placement_groups: + pgrp1: + policy: "availability" + + servers: + demo1: + floating_ip: true + placement: "pgrp1" + demo2: + placement: "pgrp1" + + networks: + test: + cidr: '10.0.1.0/24' +{% endfor %} diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh index e1d717749..6f950ec72 100755 --- a/tests/ci/load_images.sh +++ b/tests/ci/load_images.sh @@ -206,7 +206,7 @@ create_nova_flavor() # Create the nova flavor used by some sample test cases openstack flavor create --id 100 --ram 512 --disk 3 --vcpus 1 yardstick-flavor # DPDK-enabled OVS requires guest memory to be backed by large pages - if [[ "$DEPLOY_SCENARIO" == *"-ovs-"* ]]; then + if [[ $DEPLOY_SCENARIO == *[_-]ovs[_-]* ]]; then openstack flavor set --property hw:mem_page_size=large yardstick-flavor fi # VPP requires guest memory to be backed by large pages diff --git a/tests/ci/yardstick-verify b/tests/ci/yardstick-verify index f9d98a4da..575bdc821 100755 --- a/tests/ci/yardstick-verify +++ b/tests/ci/yardstick-verify @@ -146,11 +146,11 @@ report(){ \"version\":\"$(basename ${YARDSTICK_BRANCH})\", \"scenario\":\"${DEPLOY_SCENARIO}\", \"description\": \"yardstick ci scenario status\", - \"criteria\":\"$1\", - \"start_date\":\"$2\", - \"stop_date\":\"$3\", + \"criteria\":\"${1}\", + \"start_date\":\"${2}\", + \"stop_date\":\"${3}\", \"details\":\"\"}" \ - ${DISPATCHER_HTTP_TARGET} + "${DISPATCHER_HTTP_TARGET}" } run_test() @@ -220,7 +220,7 @@ EOF scenario_status="FAILED" fi - report $scenario_status $start_date $stop_date + report "${scenario_status}" "${start_date}" "${stop_date}" if [ $failed -gt 0 ]; then echo "---------------------------" diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml index 67619d3d0..4d3ae93f5 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml @@ -20,7 +20,7 @@ scenarios: - monitor_type: "openstack-cmd" key: "nova-flavor-list" - command_name: "nova flavor-list" + command_name: "openstack flavor list" monitor_time: 10 sla: max_outage_time: 5 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml new file mode 100644 index 000000000..c23ee97c2 --- /dev/null +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc076.yaml @@ -0,0 +1,56 @@ +--- + +schema: "yardstick:task:0.1" + +description: > + Yardstick TC076 config file; + Monitor network metrics provided by the kernel in a host and calculate + IP datagram error rate, ICMP message error rate, TCP segment error rate and + UDP datagram error rate. + +scenarios: +- + type: Ping + run_in_background: true + options: + packetsize: 200 + + host: demeter.yardstick-TC076 + target: poseidon.yardstick-TC076 + +- + type: Nstat + options: + duration: 300 + + host: poseidon.yardstick-TC076 + + runner: + type: Iteration + iterations: 1 + + sla: + IP_datagram_error_rate: 0.01 + action: monitor + +context: + name: yardstick-TC076 + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + + placement_groups: + pgrp1: + policy: "availability" + + servers: + demeter: + floating_ip: true + placement: "pgrp1" + poseidon: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.1.0/24' diff --git a/tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-ha_daily.yaml new file mode 100644 index 000000000..3841da348 --- /dev/null +++ b/tests/opnfv/test_suites/opnfv_os-odl-bgpvpn-ha_daily.yaml @@ -0,0 +1,21 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +# os-odl-bgpvpn-ha daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-odl-bgpvpn-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc002.yaml +- + file_name: opnfv_yardstick_tc005.yaml diff --git a/tests/opnfv/test_suites/opnfv_os-odl-gluon-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-gluon-noha_daily.yaml new file mode 100644 index 000000000..98648f533 --- /dev/null +++ b/tests/opnfv/test_suites/opnfv_os-odl-gluon-noha_daily.yaml @@ -0,0 +1,21 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +# os-odl-gluon-noha daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-odl-gluon-noha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc002.yaml +- + file_name: opnfv_yardstick_tc005.yaml diff --git a/tests/unit/benchmark/contexts/test_node.py b/tests/unit/benchmark/contexts/test_node.py index 64fe4a566..53a8ffa93 100644 --- a/tests/unit/benchmark/contexts/test_node.py +++ b/tests/unit/benchmark/contexts/test_node.py @@ -14,6 +14,7 @@ from __future__ import absolute_import import os import unittest +import mock from yardstick.benchmark.contexts import node @@ -123,3 +124,98 @@ class NodeContextTestCase(unittest.TestCase): curr_path = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(curr_path, filename) return file_path + + prefix = 'yardstick.benchmark.contexts.node' + + @mock.patch('{}.NodeContext._execute_script'.format(prefix)) + def test_deploy(self, execute_script_mock): + obj = node.NodeContext() + obj.env = { + 'setup': [ + {'node5': {}} + ] + } + obj.deploy() + self.assertTrue(execute_script_mock.called) + + @mock.patch('{}.NodeContext._execute_script'.format(prefix)) + def test_undeploy(self, execute_script_mock): + obj = node.NodeContext() + obj.env = { + 'teardown': [ + {'node5': {}} + ] + } + obj.undeploy() + self.assertTrue(execute_script_mock.called) + + @mock.patch('{}.ssh.SSH._put_file_shell'.format(prefix)) + @mock.patch('{}.ssh.SSH.execute'.format(prefix)) + def test_execute_remote_script(self, execute_mock, put_file_mock): + obj = node.NodeContext() + obj.env = {'prefix': 'yardstick.benchmark.scenarios.compute'} + node_name_args = 'node5' + obj.nodes = [{ + 'name': node_name_args, + 'user': 'ubuntu', + 'ip': '10.10.10.10', + 'pwd': 'ubuntu', + }] + + info = {'script': 'computecapacity.bash'} + execute_mock.return_value = (0, '', '') + obj._execute_remote_script('node5', info) + + self.assertTrue(put_file_mock.called) + self.assertTrue(execute_mock.called) + + @mock.patch('{}.NodeContext._execute_local_script'.format(prefix)) + def test_execute_script_local(self, local_execute_mock): + node_name = 'local' + info = {} + node.NodeContext()._execute_script(node_name, info) + self.assertTrue(local_execute_mock.called) + + @mock.patch('{}.NodeContext._execute_remote_script'.format(prefix)) + def test_execute_script_remote(self, remote_execute_mock): + node_name = 'node5' + info = {} + node.NodeContext()._execute_script(node_name, info) + self.assertTrue(remote_execute_mock.called) + + def test_get_script(self): + script_args = 'hello.bash' + info_args = { + 'script': script_args + } + script, options = node.NodeContext()._get_script(info_args) + self.assertEqual(script_args, script) + self.assertEqual('', options) + + def test_node_info(self): + node_name_args = 'node5' + obj = node.NodeContext() + obj.nodes = [{'name': node_name_args, 'check': node_name_args}] + node_info = obj._get_node_info(node_name_args) + self.assertEqual(node_info.get('check'), node_name_args) + + @mock.patch('{}.ssh.SSH.wait'.format(prefix)) + def test_get_client(self, wait_mock): + node_name_args = 'node5' + obj = node.NodeContext() + obj.nodes = [{ + 'name': node_name_args, + 'user': 'ubuntu', + 'ip': '10.10.10.10', + 'pwd': 'ubuntu', + }] + obj._get_client(node_name_args) + self.assertTrue(wait_mock.called) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/benchmark/core/test_task.py b/tests/unit/benchmark/core/test_task.py index c56e21047..cd7ffdebb 100644 --- a/tests/unit/benchmark/core/test_task.py +++ b/tests/unit/benchmark/core/test_task.py @@ -155,6 +155,30 @@ class TaskTestCase(unittest.TestCase): self.assertEqual(task_args_fnames[0], None) self.assertEqual(task_args_fnames[1], None) + def test_change_server_name_host_str(self): + scenario = {'host': 'demo'} + suffix = '-8' + task.change_server_name(scenario, suffix) + self.assertTrue(scenario['host'], 'demo-8') + + def test_change_server_name_host_dict(self): + scenario = {'host': {'name': 'demo'}} + suffix = '-8' + task.change_server_name(scenario, suffix) + self.assertTrue(scenario['host']['name'], 'demo-8') + + def test_change_server_name_target_str(self): + scenario = {'target': 'demo'} + suffix = '-8' + task.change_server_name(scenario, suffix) + self.assertTrue(scenario['target'], 'demo-8') + + def test_change_server_name_target_dict(self): + scenario = {'target': {'name': 'demo'}} + suffix = '-8' + task.change_server_name(scenario, suffix) + self.assertTrue(scenario['target']['name'], 'demo-8') + def _get_file_abspath(self, filename): curr_path = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(curr_path, filename) diff --git a/tests/unit/benchmark/scenarios/networking/test_nstat.py b/tests/unit/benchmark/scenarios/networking/test_nstat.py new file mode 100644 index 000000000..87a766302 --- /dev/null +++ b/tests/unit/benchmark/scenarios/networking/test_nstat.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# Unittest for yardstick.benchmark.scenarios.networking.nstat.Nstat + +from __future__ import absolute_import + +import unittest + +import mock + +from yardstick.benchmark.scenarios.networking import nstat + +@mock.patch('yardstick.benchmark.scenarios.networking.nstat.ssh') +class NstatTestCase(unittest.TestCase): + + def setUp(self): + self.ctx = { + "host": { + "ip": "192.168.50.28", + "user": "root", + "key_filename": "mykey.key" + } + } + + def test_nstat_successful_setup(self, mock_ssh): + + n = nstat.Nstat({}, self.ctx) + n.setup() + + mock_ssh.SSH().execute.return_value = (0, '', '') + self.assertIsNotNone(n.client) + self.assertEqual(n.setup_done, True) + + def test_nstat_successful_no_sla(self, mock_ssh): + + options = { + "duration": 60 + } + args = { + "options": options, + } + n = nstat.Nstat(args, self.ctx) + result = {} + + sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' + + mock_ssh.SSH().execute.return_value = (0, sample_output, '') + + n.run(result) + expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318, + "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2, + "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2, + "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319, + "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0, + "Icmp_message_error_rate": 0.0, "UdpInErrors": 0} + self.assertEqual(result, expected_result) + + def test_nstat_successful_sla(self, mock_ssh): + + options = { + "duration": 60 + } + sla = { + "IP_datagram_error_rate": 0.1 + } + args = { + "options": options, + "sla": sla + } + n = nstat.Nstat(args, self.ctx) + result = {} + + sample_output = '#kernel\nIpInReceives 1837 0.0\nIpInHdrErrors 0 0.0\nIpInAddrErrors 2 0.0\nIcmpInMsgs 319 0.0\nIcmpInErrors 0 0.0\nTcpInSegs 36 0.0\nTcpInErrs 0 0.0\nUdpInDatagrams 1318 0.0\nUdpInErrors 0 0.0\n' + + mock_ssh.SSH().execute.return_value = (0, sample_output, '') + + n.run(result) + expected_result = {"TcpInErrs": 0, "UdpInDatagrams": 1318, + "Tcp_segment_error_rate": 0.0, "IpInAddrErrors": 2, + "IpInHdrErrors": 0, "IcmpInErrors": 0, "IpErrors": 2, + "TcpInSegs": 36, "IpInReceives": 1837, "IcmpInMsgs": 319, + "IP_datagram_error_rate": 0.001, "Udp_datagram_error_rate": 0.0, + "Icmp_message_error_rate": 0.0, "UdpInErrors": 0} + self.assertEqual(result, expected_result) + + def test_nstat_unsuccessful_cmd_error(self, mock_ssh): + + options = { + "duration": 60 + } + sla = { + "IP_datagram_error_rate": 0.1 + } + args = { + "options": options, + "sla": sla + } + n = nstat.Nstat(args, self.ctx) + result = {} + + mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR') + self.assertRaises(RuntimeError, n.run, result) + + +def main(): + unittest.main() + +if __name__ == '__main__': + main() diff --git a/tools/ubuntu-server-cloudimg-dpdk-modify.sh b/tools/ubuntu-server-cloudimg-dpdk-modify.sh index aa4e252ea..9a3857ee3 100755 --- a/tools/ubuntu-server-cloudimg-dpdk-modify.sh +++ b/tools/ubuntu-server-cloudimg-dpdk-modify.sh @@ -63,10 +63,13 @@ linuxheadersversion=`echo ls boot/vmlinuz* | cut -d- -f2-` apt-get update apt-get install -y \ + bc \ fio \ gcc \ git \ iperf3 \ + iproute2 \ + ethtool \ linux-tools-common \ linux-tools-generic \ lmbench \ diff --git a/tools/ubuntu-server-cloudimg-modify.sh b/tools/ubuntu-server-cloudimg-modify.sh index 49c842c97..c0ae774ef 100755 --- a/tools/ubuntu-server-cloudimg-modify.sh +++ b/tools/ubuntu-server-cloudimg-modify.sh @@ -58,10 +58,13 @@ bootcmd: EOF fi apt-get install -y \ + bc \ fio \ git \ gcc \ iperf3 \ + ethtool \ + iproute2 \ linux-tools-common \ linux-tools-generic \ lmbench \ diff --git a/yardstick/__init__.py b/yardstick/__init__.py index fbbc101a9..1ad6eb0b1 100644 --- a/yardstick/__init__.py +++ b/yardstick/__init__.py @@ -39,6 +39,8 @@ def _init_logging(): # don't append to log file, clobber _LOG_FILE_HDLR.setFormatter(_LOG_FORMATTER) + # set log file to store debug info + _LOG_FILE_HDLR.setLevel(logging.DEBUG) del logging.root.handlers[:] logging.root.addHandler(_LOG_STREAM_HDLR) diff --git a/yardstick/benchmark/contexts/node.py b/yardstick/benchmark/contexts/node.py index c7ed3b3f1..6fa9aa99a 100644 --- a/yardstick/benchmark/contexts/node.py +++ b/yardstick/benchmark/contexts/node.py @@ -8,14 +8,18 @@ ############################################################################## from __future__ import absolute_import -import logging import errno +import subprocess import os import collections +import logging + import yaml +import pkg_resources +from yardstick import ssh from yardstick.benchmark.contexts.base import Context -from yardstick.definitions import YARDSTICK_ROOT_PATH +from yardstick.common.constants import YARDSTICK_ROOT_PATH LOG = logging.getLogger(__name__) @@ -32,6 +36,7 @@ class NodeContext(Context): self.controllers = [] self.computes = [] self.baremetals = [] + self.env = {} super(NodeContext, self).__init__() def read_config_file(self): @@ -69,13 +74,20 @@ class NodeContext(Context): LOG.debug("Computes: %r", self.computes) LOG.debug("BareMetals: %r", self.baremetals) + self.env = attrs.get('env', {}) + LOG.debug("Env: %r", self.env) + def deploy(self): - """don't need to deploy""" - pass + setups = self.env.get('setup', []) + for setup in setups: + for host, info in setup.items(): + self._execute_script(host, info) def undeploy(self): - """don't need to undeploy""" - pass + teardowns = self.env.get('teardown', []) + for teardown in teardowns: + for host, info in teardown.items(): + self._execute_script(host, info) def _get_server(self, attr_name): """lookup server info by name from context @@ -106,3 +118,61 @@ class NodeContext(Context): node["name"] = attr_name return node + + def _execute_script(self, node_name, info): + if node_name == 'local': + self._execute_local_script(info) + else: + self._execute_remote_script(node_name, info) + + def _execute_remote_script(self, node_name, info): + prefix = self.env.get('prefix', '') + script, options = self._get_script(info) + + script_file = pkg_resources.resource_filename(prefix, script) + + self._get_client(node_name) + self.client._put_file_shell(script_file, '~/{}'.format(script)) + + cmd = 'sudo bash {} {}'.format(script, options) + status, stdout, stderr = self.client.execute(cmd) + if status: + raise RuntimeError(stderr) + + def _execute_local_script(self, info): + script, options = self._get_script(info) + script = os.path.join(YARDSTICK_ROOT_PATH, script) + cmd = ['bash', script, options] + + p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + LOG.debug('\n%s', p.communicate()[0]) + + def _get_script(self, info): + return info.get('script'), info.get('options', '') + + def _get_client(self, node_name): + node = self._get_node_info(node_name.strip()) + + if node is None: + raise SystemExit('No such node') + + user = node.get('user', 'ubuntu') + ssh_port = node.get("ssh_port", ssh.DEFAULT_PORT) + ip = node.get('ip') + pwd = node.get('password') + key_fname = node.get('key_filename', '/root/.ssh/id_rsa') + + if pwd is not None: + LOG.debug("Log in via pw, user:%s, host:%s, password:%s", + user, ip, pwd) + self.client = ssh.SSH(user, ip, password=pwd, port=ssh_port) + else: + LOG.debug("Log in via key, user:%s, host:%s, key_filename:%s", + user, ip, key_fname) + self.client = ssh.SSH(user, ip, key_filename=key_fname, + port=ssh_port) + + self.client.wait(timeout=600) + + def _get_node_info(self, name): + return next((n for n in self.nodes if n['name'].strip() == name)) diff --git a/yardstick/benchmark/core/__init__.py b/yardstick/benchmark/core/__init__.py index 161e448cc..79ebc732f 100644 --- a/yardstick/benchmark/core/__init__.py +++ b/yardstick/benchmark/core/__init__.py @@ -33,6 +33,6 @@ class Param(object): def print_hbar(barlen): """print to stdout a horizontal bar""" - print("+"), - print("-" * barlen), + print("+") + print("-" * barlen) print("+") diff --git a/yardstick/benchmark/core/task.py b/yardstick/benchmark/core/task.py index 87d70f42f..522ad4d23 100644 --- a/yardstick/benchmark/core/task.py +++ b/yardstick/benchmark/core/task.py @@ -85,7 +85,7 @@ class Task(object): # pragma: no cover # (hide it for exit handler) Context.list = [] else: - for context in Context.list: + for context in Context.list[::-1]: context.undeploy() Context.list = [] one_task_end_time = time.time() @@ -348,17 +348,23 @@ def atexit_handler(): if len(Context.list) > 0: print("Undeploying all contexts") - for context in Context.list: + for context in Context.list[::-1]: context.undeploy() def is_ip_addr(addr): """check if string addr is an IP address""" try: + addr = addr.get('public_ip_attr', addr.get('private_ip_attr')) + except AttributeError: + pass + + try: ipaddress.ip_address(addr.encode('utf-8')) - return True except ValueError: return False + else: + return True def _is_same_heat_context(host_attr, target_attr): @@ -499,14 +505,24 @@ def check_environment(): def change_server_name(scenario, suffix): try: - scenario['host'] += suffix + host = scenario['host'] except KeyError: pass + else: + try: + host['name'] += suffix + except TypeError: + scenario['host'] += suffix try: - scenario['target'] += suffix + target = scenario['target'] except KeyError: pass + else: + try: + target['name'] += suffix + except TypeError: + scenario['target'] += suffix try: key = 'targets' diff --git a/yardstick/benchmark/runners/arithmetic.py b/yardstick/benchmark/runners/arithmetic.py index d5605f755..65fdb9d66 100755 --- a/yardstick/benchmark/runners/arithmetic.py +++ b/yardstick/benchmark/runners/arithmetic.py @@ -139,7 +139,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg, sequence += 1 - if (errors and sla_action is None): + if errors and sla_action is None: break benchmark.teardown() diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_flavor.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_flavor.bash index 5c2d6d70e..38dbe0cee 100644 --- a/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_flavor.bash +++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/create_flavor.bash @@ -16,4 +16,4 @@ set -e source /root/openrc -nova flavor-create $1 $2 $3 $4 $5 +openstack flavor create $1 --id $2 --ram $3 --disk $4 --vcpus $5 diff --git a/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_flavor.bash b/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_flavor.bash index 67d0c902e..37d2cf6c0 100644 --- a/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_flavor.bash +++ b/yardstick/benchmark/scenarios/availability/ha_tools/nova/delete_flavor.bash @@ -16,4 +16,4 @@ set -e source /root/openrc -nova flavor-delete $1
\ No newline at end of file +openstack flavor delete $1 diff --git a/yardstick/benchmark/scenarios/networking/nstat.py b/yardstick/benchmark/scenarios/networking/nstat.py new file mode 100644 index 000000000..df96dbda7 --- /dev/null +++ b/yardstick/benchmark/scenarios/networking/nstat.py @@ -0,0 +1,130 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +from __future__ import print_function +from __future__ import absolute_import + +import time +import logging + +import yardstick.ssh as ssh +from yardstick.benchmark.scenarios import base + +LOG = logging.getLogger(__name__) + +PRECISION = 3 + + +class Nstat(base.Scenario): + """Use nstat to monitor network metrics and measure IP datagram error rate + and etc. + """ + + __scenario_type__ = "Nstat" + + def __init__(self, scenario_cfg, context_cfg): + """Scenario construction""" + self.scenario_cfg = scenario_cfg + self.context_cfg = context_cfg + self.setup_done = False + + def setup(self): + """scenario setup""" + host = self.context_cfg["host"] + user = host.get("user", "ubuntu") + ssh_port = host.get("ssh_port", ssh.DEFAULT_PORT) + ip = host.get("ip", None) + key_filename = host.get('key_filename', "~/.ssh/id_rsa") + + LOG.info("user:%s, host:%s", user, ip) + self.client = ssh.SSH(user, ip, key_filename=key_filename, + port=ssh_port) + self.client.wait(timeout=600) + + self.setup_done = True + + def match(self, key, field, line, results): + """match data in the output""" + if key in line: + results[key] = int(line.split()[field]) + + def calculate_error_rate(self, x, y): + """calculate error rate""" + try: + return round(float(x) / float(y), PRECISION) + except ZeroDivisionError: + # If incoming Errors is non-zero, but incoming data is zero + # consider it as 100% error rate + if x: + return 1 + else: + return 0 + + def process_output(self, out): + """process output""" + results = {} + for line in out.splitlines(): + self.match('IpInReceives', 1, line, results) + self.match('IpInHdrErrors', 1, line, results) + self.match('IpInAddrErrors', 1, line, results) + self.match('IcmpInMsgs', 1, line, results) + self.match('IcmpInErrors', 1, line, results) + self.match('TcpInSegs', 1, line, results) + self.match('TcpInErrs', 1, line, results) + self.match('UdpInDatagrams', 1, line, results) + self.match('UdpInErrors', 1, line, results) + results['IpErrors'] = \ + results['IpInHdrErrors'] + results['IpInAddrErrors'] + results['IP_datagram_error_rate'] = \ + self.calculate_error_rate(results['IpErrors'], + results['IpInReceives']) + results['Icmp_message_error_rate'] = \ + self.calculate_error_rate(results['IcmpInErrors'], + results['IcmpInMsgs']) + results['Tcp_segment_error_rate'] = \ + self.calculate_error_rate(results['TcpInErrs'], + results['TcpInSegs']) + results['Udp_datagram_error_rate'] = \ + self.calculate_error_rate(results['UdpInErrors'], + results['UdpInDatagrams']) + return results + + def run(self, result): + """execute the benchmark""" + + if not self.setup_done: + self.setup() + + options = self.scenario_cfg['options'] + duration = options.get('duration', 60) + + time.sleep(duration) + + cmd = "nstat -z" + + LOG.debug("Executing command: %s", cmd) + status, stdout, stderr = self.client.execute(cmd) + + if status: + raise RuntimeError(stderr) + + results = self.process_output(stdout) + + result.update(results) + + if "sla" in self.scenario_cfg: + sla_error = "" + for i, rate in result.items(): + if i not in self.scenario_cfg['sla']: + continue + sla_rate = float(self.scenario_cfg['sla'][i]) + rate = float(rate) + if rate > sla_rate: + sla_error += "%s rate %f > sla:%s_rate(%f); " % \ + (i, rate, i, sla_rate) + assert sla_error == "", sla_error diff --git a/yardstick/benchmark/scenarios/networking/sfc_openstack.py b/yardstick/benchmark/scenarios/networking/sfc_openstack.py index caaf10060..be24add32 100644 --- a/yardstick/benchmark/scenarios/networking/sfc_openstack.py +++ b/yardstick/benchmark/scenarios/networking/sfc_openstack.py @@ -81,7 +81,7 @@ def create_floating_ips(neutron_client): # pragma: no cover ips = [] props = {'floating_network_id': extnet_id} try: - while (len(ips) < 2): + while len(ips) < 2: ip_json = neutron_client.create_floatingip({'floatingip': props}) fip_addr = ip_json['floatingip']['floating_ip_address'] ips.append(fip_addr) diff --git a/yardstick/cmd/NSBperf.py b/yardstick/cmd/NSBperf.py index dd96b7fc8..c3730f834 100755 --- a/yardstick/cmd/NSBperf.py +++ b/yardstick/cmd/NSBperf.py @@ -115,7 +115,7 @@ class YardstickNSCli(object): def generate_final_report(self, test_case): """ Function will check if partial test results are available and generates final report in rst format. -""" + """ report_caption = '{}\n{} ({})\n{}\n\n'.format( '================================================================', diff --git a/yardstick/cmd/commands/task.py b/yardstick/cmd/commands/task.py index 57c2b1526..16a4db291 100644 --- a/yardstick/cmd/commands/task.py +++ b/yardstick/cmd/commands/task.py @@ -14,7 +14,7 @@ from __future__ import absolute_import from yardstick.benchmark.core.task import Task from yardstick.common.utils import cliargs from yardstick.common.utils import write_json_to_file -from yardstick.common import constants as consts +from yardstick.common.utils import read_json_from_file from yardstick.cmd.commands import change_osloobj_to_paras output_file_default = "/tmp/yardstick.out" @@ -24,7 +24,7 @@ class TaskCommands(object): """Task commands. Set of commands to manage benchmark tasks. - """ + """ @cliargs("inputfile", type=str, help="path to task or suite file", nargs=1) @cliargs("--task-args", dest="task_args", @@ -44,18 +44,25 @@ class TaskCommands(object): action="store_true") def do_start(self, args, **kwargs): param = change_osloobj_to_paras(args) + self.output_file = param.output_file self._init_result_file() try: Task().start(param, **kwargs) + self._finish() except Exception as e: self._write_error_data(e) def _init_result_file(self): data = {'status': 0, 'result': []} - write_json_to_file(consts.DEFAULT_OUTPUT_FILE, data) + write_json_to_file(self.output_file, data) + + def _finish(self): + result = read_json_from_file(self.output_file).get('result') + data = {'status': 1, 'result': result} + write_json_to_file(self.output_file, data) def _write_error_data(self, error): data = {'status': 2, 'result': str(error)} - write_json_to_file(consts.DEFAULT_OUTPUT_FILE, data) + write_json_to_file(self.output_file, data) diff --git a/yardstick/common/task_template.py b/yardstick/common/task_template.py index bda8a1b13..9acc21336 100755 --- a/yardstick/common/task_template.py +++ b/yardstick/common/task_template.py @@ -45,11 +45,11 @@ def is_really_missing(mis, task_template): # Removing variables that have default values from # missing. Construction that won't be properly # check is {% set x = x or 1} - if re.search(mis.join(["{%\s*set\s+", "\s*=\s*", "[^\w]+"]), + if re.search(mis.join([r"{%\s*set\s+", "\s*=\s*", r"[^\w]+"]), task_template): return False # Also check for a default filter which can show up as # a missing variable - if re.search(mis + "\s*\|\s*default\(", task_template): + if re.search(mis + r"\s*\|\s*default\(", task_template): return False return True diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py index 174ac0a5a..04536190b 100644 --- a/yardstick/common/utils.py +++ b/yardstick/common/utils.py @@ -148,6 +148,11 @@ def get_neutron_client(): return neutron_client +def read_json_from_file(path): + with open(path, 'r') as f: + return jsonutils.load(f) + + def write_json_to_file(path, data, mode='w'): with open(path, mode) as f: jsonutils.dump(data, f) diff --git a/yardstick/dispatcher/file.py b/yardstick/dispatcher/file.py index 8d3c3693d..6fc81d419 100644 --- a/yardstick/dispatcher/file.py +++ b/yardstick/dispatcher/file.py @@ -39,5 +39,8 @@ class FileDispatcher(DispatchBase): def flush_result_data(self): file_path = self.conf.get('file_path', consts.DEFAULT_OUTPUT_FILE) - data = {'status': 1, 'result': self.result} + res = utils.read_json_from_file(file_path).get('result') + res.extend(self.result) + + data = {'status': 0, 'result': res} utils.write_json_to_file(file_path, data) |