"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "4.6.3"
+ "version": "4.4.3"
},
{
"type": "panel",
"hideControls": false,
"id": null,
"links": [],
- "refresh": false,
+ "refresh": "5s",
"rows": [
{
"collapse": false,
"max": true,
"min": true,
"show": true,
- "sortDesc": true,
+ "sort": null,
+ "sortDesc": null,
"total": false,
"values": true
},
"fill": 1,
"grid": {},
"height": "300px",
- "id": 2,
+ "id": 2,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Load Requested to Generator",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.RequestedTxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Generated (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.TxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "Load Received (by the Generator)",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.RxThroughput"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Generator Stats: Average Throughout per step",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 5,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "Packet Size",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.PktSize"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packet size",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "Packet Size (Bytes)",
+ "logBase": 2,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 169,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 206,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": true,
+ "targets": [
+ {
+ "alias": "TG xe-0 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe0.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-1 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe1.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-2 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "hide": false,
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe2.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe2.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ },
+ {
+ "alias": "TG xe-3 Out packets",
+ "dsType": "influxdb",
+ "groupBy": [
+ {
+ "params": [
+ "$interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tc_prox_baremetal_l3fwd-4",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe3.out_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tg__0.collect_stats.live_stats.xe3.out_packets"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
+ }
+ ]
+ ],
+ "tags": []
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(216, 200, 27, 0.27)",
+ "op": "gt",
+ "value": 0
+ },
+ {
+ "colorMode": "custom",
+ "fill": true,
+ "fillColor": "rgba(234, 112, 112, 0.22)",
+ "op": "gt",
+ "value": 0
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Packets Sent by Generator per second and per interface",
+ "tooltip": {
+ "msResolution": true,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid": {},
+ "height": "300px",
+ "id": 207,
"legend": {
"alignAsTable": true,
"avg": true,
"spaceLength": 10,
"span": 6,
"stack": false,
- "steppedLine": true,
+ "steppedLine": false,
"targets": [
{
- "alias": "Load Requested to Generator",
+ "alias": "TG xe-0 in packets",
"dsType": "influxdb",
"groupBy": [
{
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") / 1000000 FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.collect_stats.RequestedTxThroughput"
+ "tg__0.collect_stats.live_stats.xe0.in_packets"
],
"type": "field"
},
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"tags": []
},
{
- "alias": "Load Generated (by the Generator)",
+ "alias": "TG xe-1 in packets",
"dsType": "influxdb",
"groupBy": [
{
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "refId": "A",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.TxThroughput"
+ "tg__0.collect_stats.live_stats.xe1.in_packets"
],
"type": "field"
},
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"tags": []
},
{
- "alias": "Load Received (by the Generator)",
+ "alias": "TG xe-2 in packets",
"dsType": "influxdb",
"groupBy": [
{
"type": "fill"
}
],
- "hide": false,
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "refId": "B",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe2.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.RxThroughput"
+ "tg__0.collect_stats.live_stats.xe2.in_packets"
],
"type": "field"
},
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"tags": []
- }
- ],
- "thresholds": [
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(216, 200, 27, 0.27)",
- "op": "gt",
- "value": 0
- },
- {
- "colorMode": "custom",
- "fill": true,
- "fillColor": "rgba(234, 112, 112, 0.22)",
- "op": "gt",
- "value": 0
- }
- ],
- "timeFrom": null,
- "timeShift": null,
- "title": "Generator stats",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "transparent": false,
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "Million Packets Per Second",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
},
{
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "${DS_YARDSTICK}",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "height": "300px",
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "span": 6,
- "stack": false,
- "steppedLine": true,
- "targets": [
- {
- "alias": "Packet Size",
+ "alias": "TG xe-3 in packets",
"dsType": "influxdb",
"groupBy": [
{
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "refId": "A",
+ "query": "SELECT mean(\"tg__0.collect_stats.live_stats.xe3.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "rawQuery": false,
+ "refId": "D",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.collect_stats.PktSize"
+ "tg__0.collect_stats.live_stats.xe3.in_packets"
],
"type": "field"
},
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
],
"timeFrom": null,
"timeShift": null,
- "title": "Packet size",
+ "title": "Packets Received by Generator per second and per interface",
"tooltip": {
"msResolution": true,
"shared": true,
},
"yaxes": [
{
- "format": "none",
- "label": "Packet Size (Bytes)",
- "logBase": 2,
+ "format": "short",
+ "label": "Million Packets Per Second",
+ "logBase": 1,
"max": null,
- "min": null,
+ "min": "0",
"show": true
},
{
"show": true
}
]
- }
- ],
- "repeat": null,
- "repeatIteration": null,
- "repeatRowId": null,
- "showTitle": false,
- "title": "New row",
- "titleSize": "h6"
- },
- {
- "collapse": false,
- "height": 169,
- "panels": [
+ },
{
"aliasColors": {},
"bars": false,
"min": true,
"rightSide": false,
"show": true,
- "sortDesc": true,
+ "sortDesc": false,
"total": false,
"values": true
},
]
},
{
- "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Prox L3Fwd Traffic Gen stats</center> </a></h5>\n",
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><a style=\"font: 22px '#31A7D3'\"><center>Generator Stats: Packets per Step</center> </a></h5>\n",
"editable": true,
"error": false,
"height": "40",
"type": "fill"
}
],
+ "hide": false,
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"type": "fill"
}
],
+ "hide": false,
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe1.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "B",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"type": "fill"
}
],
+ "hide": false,
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe2.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "C",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe3.out_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "D",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
],
"timeFrom": null,
"timeShift": null,
- "title": "Packets Sent by Generator",
+ "title": "Packets Sent by Generator per Step",
"tooltip": {
"msResolution": true,
"shared": true,
"yaxes": [
{
"format": "short",
- "label": "Packets ",
+ "label": "Million Packets Per Step",
"logBase": 1,
"max": null,
"min": "0",
"dashLength": 10,
"dashes": false,
"datasource": "${DS_YARDSTICK}",
+ "decimals": 4,
"editable": true,
"error": false,
"fill": 1,
"max": true,
"min": true,
"show": true,
+ "sortDesc": true,
"total": false,
"values": true
},
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe0.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe1.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "B",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe2.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "C",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(\"tg__0.collect_stats.xe3.in_packets\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": true,
+ "rawQuery": false,
"refId": "D",
"resultFormat": "time_series",
"select": [
{
"params": [],
"type": "mean"
+ },
+ {
+ "params": [
+ " / 1000000"
+ ],
+ "type": "math"
}
]
],
],
"timeFrom": null,
"timeShift": null,
- "title": "Packets Received by Generator",
+ "title": "Packets Received by Generator per Step",
"tooltip": {
"msResolution": true,
"shared": true,
"yaxes": [
{
"format": "short",
- "label": "Packets Per Second",
+ "label": "Million Packets Per Step",
"logBase": 1,
"max": null,
"min": "0",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"measurement": "tc_prox_baremetal_l3fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT last(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l3fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
[
{
"params": [
- "tg__0.collect_stats.theor_max_throughput"
+ "tg__0.collect_stats.RequestedTxThroughput"
],
"type": "field"
},
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"thresholds": "",
"title": "",
"type": "singlestat",
- "valueFontSize": "50%",
+ "valueFontSize": "30%",
"valueMaps": [
{
"op": "=",
"list": []
},
"time": {
- "from": "2018-09-04T00:52:16.948Z",
- "to": "2018-09-04T12:52:16.948Z"
+ "from": "now-3h",
+ "to": "now"
},
"timepicker": {
"refresh_intervals": [
},
"timezone": "browser",
"title": "Prox_BM_L3FWD-4Port",
- "version": 3
+ "version": 6
}
\ No newline at end of file
self.assertListEqual(result, expected)
self.assertTrue(ok)
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_multi_port_stats_diff(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ _, t1 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,6;1,4,8,16,32,6'))
+ _, t2 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,1,1,1,1;1,1,1,1,1,1'))
+ _, t3 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,2,2,2,2;1,2,2,2,2,2'))
+ _, t4 = prox.multi_port_stats([0, 1])
+
+ expected = [[0, 1.0, 2.0, 0, 0, 1], [1, 3.0, 6.0, 0, 0, 1]]
+ result = prox.multi_port_stats_diff(t1, t2, 1)
+
+ self.assertListEqual(result, expected)
+
+ result = prox.multi_port_stats_diff(t4, t3, 1)
+ expected = [[0, 1.0, 1.0, 0, 0, 1], [1, 1.0, 1.0, 0, 0, 1]]
+
+ self.assertListEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,10'))
+ ok, t5 = prox.multi_port_stats([0, 1])
+ self.assertFalse(ok)
+ self.assertListEqual(t5, [])
+
+ result = prox.multi_port_stats_diff(t5, t4, 1)
+ expected = [[0, 0.0, 0.0, 0, 0, 0], [1, 0.0, 0.0, 0, 0, 0]]
+ self.assertListEqual(result, expected)
+
+ prox.get_string = mock.MagicMock(return_value=(True, '0,10,10,20,30,0;1,30,40,50,60,0'))
+ _, t6 = prox.multi_port_stats([0, 1])
+
+ prox.get_string = \
+ mock.MagicMock(return_value=(True, '0,100,100,100,100,0;1,100,100,100,100,0'))
+ _, t7 = prox.multi_port_stats([0, 1])
+
+ result = prox.multi_port_stats_diff(t6, t7, 1)
+ expected = [[0, 0.0, 0.0, 0, 0, 0], [1, 0.0, 0.0, 0, 0, 0]]
+ self.assertListEqual(result, expected)
+
+ result = prox.multi_port_stats_diff(t1, t2, 0)
+ expected = [[0, 0.0, 0.0, 0, 0, 1], [1, 0.0, 0.0, 0, 0, 1]]
+ self.assertListEqual(result, expected)
+
+ @mock.patch.object(prox_helpers.LOG, 'error')
+ def test_multi_port_stats_tuple(self, *args):
+ mock_socket = mock.MagicMock()
+ prox = prox_helpers.ProxSocketHelper(mock_socket)
+ prox.get_string = mock.MagicMock(return_value=(True, '0,1,2,3,4,5;1,1,2,3,4,5'))
+ _, result1 = prox.multi_port_stats([0, 1])
+ prox.get_string = mock.MagicMock(return_value=(True, '0,2,4,6,8,6;1,4,8,16,32,6'))
+ _, result2 = prox.multi_port_stats([0, 1])
+
+ result = prox.multi_port_stats_diff(result1, result2, 1)
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+
+ expected = {'xe0': {'in_packets': 1.0, 'out_packets': 2.0},
+ 'xe1': {'in_packets': 3.0, 'out_packets': 6.0}}
+ live_stats = prox.multi_port_stats_tuple(result, vnfd_helper.ports_iter())
+ self.assertDictEqual(live_stats, expected)
+
+ live_stats = prox.multi_port_stats_tuple(result, None)
+ expected = {}
+ self.assertDictEqual(live_stats, expected)
+
+ live_stats = prox.multi_port_stats_tuple(None, vnfd_helper.ports_iter())
+ self.assertDictEqual(live_stats, expected)
+
def test_port_stats(self):
port_stats = [
','.join(str(n) for n in range(3, 15)),
helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
helper._queue = queue = mock.MagicMock()
helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.hz.return_value = 1
+ helper.client.multi_port_stats.return_value = \
+ (True, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
+ helper.resource = resource = mock.MagicMock()
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
+ resource.check_if_system_agent_running.return_value = 0, '1234'
+ resource.amqp_collect_nfvi_kpi.return_value = 543
+ resource.check_if_system_agent_running.return_value = (0, None)
+
+ queue.empty.return_value = False
+ queue.get.return_value = {'a': 789}
+
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543},
+ 'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}}
+ result = helper.collect_kpi()
+ self.assertDictEqual(result, expected)
+
+ def test_collect_kpi_no_hz(self):
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
+ helper._queue = queue = mock.MagicMock()
+ helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.multi_port_stats.return_value = \
+ (True, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
+ helper.resource = resource = mock.MagicMock()
+
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
+ resource.check_if_system_agent_running.return_value = 0, '1234'
+ resource.amqp_collect_nfvi_kpi.return_value = 543
+ resource.check_if_system_agent_running.return_value = (0, None)
+
+ queue.empty.return_value = False
+ queue.get.return_value = {'a': 789}
+
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543},
+ 'live_stats': {'xe0': {'in_packets': 1, 'out_packets': 2}}}
+ result = helper.collect_kpi()
+ self.assertDictEqual(result, expected)
+
+ def test_collect_kpi_bad_data(self):
+ helper = prox_helpers.ProxResourceHelper(mock.MagicMock())
+ helper._queue = queue = mock.MagicMock()
+ helper._result = {'z': 123}
+
+ helper.client = mock.MagicMock()
+ helper.client.multi_port_stats.return_value = \
+ (False, [[0, 1, 2, 3, 4, 5], [1, 1, 2, 3, 4, 5]])
+ helper.client.multi_port_stats_diff.return_value = \
+ ([0, 1, 2, 3, 4, 5, 6, 7])
+ helper.client.multi_port_stats_tuple.return_value = \
+ {"xe0": {"in_packets": 1, "out_packets": 2}}
helper.resource = resource = mock.MagicMock()
+ vnfd_helper = mock.MagicMock()
+ vnfd_helper.ports_iter.return_value = [('xe0', 0), ('xe1', 1)]
+ helper.vnfd_helper = vnfd_helper
+
resource.check_if_system_agent_running.return_value = 0, '1234'
resource.amqp_collect_nfvi_kpi.return_value = 543
resource.check_if_system_agent_running.return_value = (0, None)
queue.empty.return_value = False
queue.get.return_value = {'a': 789}
- expected = {'z': 123, 'a': 789, 'collect_stats': {'core': 543}}
+ expected = {'z': 123, 'a': 789,
+ 'collect_stats': {'core': 543}}
result = helper.collect_kpi()
self.assertDictEqual(result, expected)