Merge "update storage template file"
This commit is contained in:
commit
18c87e052b
Binary file not shown.
Before Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
@ -1,4 +1,4 @@
|
||||
<!--Copyright 2015 Cisco Systems, Inc. All rights reserved.--><!--Licensed under the Apache License, Version 2.0 (the "License"); you may--><!--not use this file except in compliance with the License. You may obtain--><!--a copy of the License at--><!--http://www.apache.org/licenses/LICENSE-2.0--><!--Unless required by applicable law or agreed to in writing, software--><!--distributed under the License is distributed on an "AS IS" BASIS, WITHOUT--><!--WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the--><!--License for the specific language governing permissions and limitations--><!--under the License.--><!doctype html> <html> <head> <meta charset="utf-8"> <title>KloudBuster</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> <link rel="stylesheet" href="styles/vendor.17ab9586.css"> <link rel="stylesheet" href="styles/main.29bdece9.css"> </head> <body ng-app="kbWebApp"> <!--<img class="background" src="images/back.8e3b7090.jpg">--> <!--[if lte IE 8]>
|
||||
<!--Copyright 2015 Cisco Systems, Inc. All rights reserved.--><!--Licensed under the Apache License, Version 2.0 (the "License"); you may--><!--not use this file except in compliance with the License. You may obtain--><!--a copy of the License at--><!--http://www.apache.org/licenses/LICENSE-2.0--><!--Unless required by applicable law or agreed to in writing, software--><!--distributed under the License is distributed on an "AS IS" BASIS, WITHOUT--><!--WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the--><!--License for the specific language governing permissions and limitations--><!--under the License.--><!doctype html> <html> <head> <meta charset="utf-8"> <title>KloudBuster</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> <link rel="stylesheet" href="styles/vendor.17ab9586.css"> <link rel="stylesheet" href="styles/main.553a3486.css"> </head> <body ng-app="kbWebApp"> <!--<img class="background" src="images/back.jpg">--> <!--[if lte IE 8]>
|
||||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please upgrade your browser to improve your
|
||||
experience.</p>
|
||||
<![endif]--> <!-- Add your site or application content here --> <div class="header"> <div class="navbar navbar-default navbar-fixed-top" role="navigation"> <!--<img class="background" src="images/back.8e3b7090.jpg">--> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" ng-href="#/" style="font-family: Arial"> <span style="color:#DF314D">K</span>loudBuster <!--<img src="images/logo.d2085010.jpg" alt="LOGO" height="50"/>--> </a> </div> <div class="collapse navbar-collapse" id="js-navbar-collapse"> <ul class="nav navbar-nav"> <li class="dropdown" id="scaletestnav"> <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span id="scaletestname">Scale/Performance</span> <span class="caret"> </span> </a> <ul class="dropdown-menu" role="menu"> <li class="" id="interactivenav"><a ng-href="#/InteractiveMode">Interactive Mode</a></li> <li class="divider"></li> <li class="" id="monitoringnav"><a ng-href="#/MonitoringMode">Monitoring Mode</a></li> </ul> </li> <li class="" id="confignav"><a ng-href="#/Config">Configuration</a></li> <li class="" id="lognav"><a ng-href="#/Log">Log</a></li> <li class="" id="aboutnav"><a ng-href="#/About">About</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li id="loginnav"><a id="loginname" ng-href="#/Login">Log Out</a></li> </ul> </div> </div> </div> </div> <div class="container"> <div ng-view=""></div> </div> <!--<div class="footer">--> <!--<div class="container" style="text-align:center;">--> <!--<!–<p><span class="glyphicon glyphicon-heart"></span>KloudBuster–>--> <!--<!–</p>–>--> <!--</div>--> <!--</div>--> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script>--> <!--!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){--> <!--(A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),--> <!--r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)--> <!--}(window,document,'script','https://www.google-analytics.com/analytics.js','ga');--> <!--ga('create', 'UA-XXXXX-X');--> <!--ga('send', 'pageview');--> <!--</script>--> <script src="scripts/vendor.3054de46.js"></script> <script src="scripts/scripts.fa59335f.js"></script> </body> </html>
|
||||
<![endif]--> <!-- Add your site or application content here --> <div class="header"> <div class="navbar navbar-default navbar-fixed-top" role="navigation"> <!--<img class="background" src="images/back.jpg">--> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" ng-href="#/" style="font-family: Arial"> <span style="color:#DF314D">K</span>loudBuster <!--<img src="images/logo.jpg" alt="LOGO" height="50"/>--> </a> </div> <div class="collapse navbar-collapse" id="js-navbar-collapse"> <ul class="nav navbar-nav"> <li class="dropdown forHttp" id="scaletestnav"> <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span id="scaletestname">Scale/Performance</span> <span class="caret"> </span> </a> <ul class="dropdown-menu" role="menu"> <li class="" id="interactivenav"><a ng-href="#/InteractiveMode">Interactive Mode</a></li> <li class="divider"></li> <li class="" id="monitoringnav"><a ng-href="#/MonitoringMode">Monitoring Mode</a></li> </ul> </li> <li class="forStorage" id="storagemodenav"><a ng-href="#/StorageMode">Storage Mode</a></li> <li class="forStorage" id="storageconfignav"><a ng-href="#/StorageConfig">Configuration</a></li> <li class="forHttp" id="confignav"><a ng-href="#/Config">Configuration</a></li> <li class="" id="lognav"><a ng-href="#/Log">Log</a></li> <li class="" id="aboutnav"><a ng-href="#/About">About</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li id="loginnav"><a id="loginname" ng-href="#/Login">Log Out</a></li> </ul> </div> </div> </div> </div> <div class="container"> <div ng-view=""></div> </div> <!--<div class="footer">--> <!--<div class="container" style="text-align:center;">--> <!--<!–<p><span class="glyphicon glyphicon-heart"></span>KloudBuster–>--> <!--<!–</p>–>--> <!--</div>--> <!--</div>--> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script>--> <!--!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){--> <!--(A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),--> <!--r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)--> <!--}(window,document,'script','https://www.google-analytics.com/analytics.js','ga');--> <!--ga('create', 'UA-XXXXX-X');--> <!--ga('send', 'pageview');--> <!--</script>--> <script src="scripts/vendor.3054de46.js"></script> <script src="scripts/scripts.c6db9ca3.js"></script> </body> </html>
|
7
kb_server/public/ui/http/scripts/scripts.c6db9ca3.js
Normal file
7
kb_server/public/ui/http/scripts/scripts.c6db9ca3.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 29 KiB |
File diff suppressed because one or more lines are too long
@ -174,7 +174,6 @@
|
||||
<span id="littleglyph" class="bar glyphicon glyphicon-triangle-right" style="color:white"></span>
|
||||
</a>
|
||||
|
||||
|
||||
<div class="content" id="content">
|
||||
<div class="row">
|
||||
<div class="my-chart" style="">
|
||||
@ -227,7 +226,6 @@
|
||||
<button type="submit" class="btn btn-default btn-xs" ng-click="saveResult()">Save Result</button>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<table ng-table="tableParams" class="table table-responsive table-condensed table-bordered table-striped">
|
||||
<tr ng-repeat="row in tableParams.data" style="text-align:center;">
|
||||
<!--<td title="cols[0].title" ng-if="cols[0].show" style="margin:0 auto;padding:0;">-->
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -668,12 +668,10 @@ def create_html(hfp, template, task_re):
|
||||
cur_time = time.strftime('%Y-%m-%d %A %X %Z', time.localtime(time.time()))
|
||||
for line in template:
|
||||
line = line.replace('[[time]]', cur_time)
|
||||
if CONF.label and CONF.storage:
|
||||
line = line.replace('[[label]]', ' - ' + CONF.label)
|
||||
elif CONF.label:
|
||||
if CONF.label:
|
||||
line = line.replace('[[label]]', CONF.label)
|
||||
else:
|
||||
line = line.replace('[[label]]', '')
|
||||
line = line.replace('[[label]]', 'Report')
|
||||
line = line.replace('[[result]]', task_re)
|
||||
hfp.write(line)
|
||||
if not CONF.headless:
|
||||
|
@ -34,15 +34,14 @@
|
||||
|
||||
<nav class="navbar navbar-default">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="#">KloudBuster Report</a>
|
||||
</div>
|
||||
<a class="navbar-brand" ng-href="#/" style="font-family: Arial">
|
||||
<span style="color:#DF314D">K</span>loudBuster
|
||||
</a>
|
||||
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav">
|
||||
<li ng-repeat="mode in modes" ng-class="{active: current_index==$index}"
|
||||
ng-click="handleEvent($event, $index)">
|
||||
<a href="#"><span class="glyphicon" aria-hidden="true"></span> {{mode.title}}</a>
|
||||
<li class="active">
|
||||
<a><span class="glyphicon" aria-hidden="true" ></span>[[label]]</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
@ -53,33 +52,58 @@
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<h3>{{current_mode["title"]}}[[label]] </h3>
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li ng-repeat="title in titleList" ng-class="{active: current_index==$index}" ng-click="handleEvent($event, $index,'')">
|
||||
<a data-toggle="tab" aria-expanded="true">
|
||||
{{title["description"]}} <span class="{{modes[title['mode']]['span']}}"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="nav nav-tabs" style="margin-top: 5px" ng-style="{height:current_mode_name =='rw' || current_mode_name =='randrw'?'':0, width:current_mode_name =='rw' || current_mode_name =='randrw'?'30%':0}">
|
||||
<li ng-show="current_mode_name =='rw' || current_mode_name =='randrw'" ng-class="{active:current_mode['name']=='read' || current_mode['name']=='randread'}">
|
||||
<a ng-click="handleEvent($event, current_index,'read')">Read</a>
|
||||
</li>
|
||||
<li ng-show="current_mode_name =='rw' || current_mode_name =='randrw'" ng-class="{active:current_mode['name']=='write' || current_mode['name']=='randwrite'}">
|
||||
<a ng-click="handleEvent($event, current_index,'write')">Write</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4 style="text-align: center">{{modes[current_mode_name]["title"]}} {{current_title}} ({{current_mode_description}})</h4>
|
||||
|
||||
<div class="my-chart" style="height: 550px;margin-bottom: 5%">
|
||||
<h6 style="margin-bottom:0"><span>{{current_mode["y_axis"]}}</span><span style="float:right">Latency(ms)</span></h6>
|
||||
<linechart data="data" options="options"></linechart>
|
||||
</div>
|
||||
<table ng-table="tableParams" class="table table-responsive table-condensed table-bordered table-striped">
|
||||
<tr ng-repeat="row in tableParams.data" style="text-align:center;">
|
||||
<!--<td title="cols[0].title" ng-if="cols[0].show" style="margin:0 auto;padding:0;">-->
|
||||
<!--<button class="btn btn-default btn-xs {{row.seq}}" ng-click=""-->
|
||||
<!--style="height: 22px;width: 24px;"></button>-->
|
||||
<!--</td>-->
|
||||
<!--<td title="cols[1].title" data-sortable="cols[1].field">{{row.mode}}</td>-->
|
||||
<td title="cols[2].title" data-sortable="cols[2].field">{{row.total_client_vms}}</td>
|
||||
<td title="cols[3].title" data-sortable="cols[3].field">{{row.block_size}}b</td>
|
||||
<td title="cols[4].title" data-sortable="cols[4].field">{{row.iodepth}}</td>
|
||||
<td title="cols[5].title" data-sortable="cols[5].field" ng-if="current_index == 0 || current_index ==1">{{row.rate_iops}}</td>
|
||||
<td title="cols[6].title" data-sortable="cols[6].field" ng-if="current_index == 0 || current_index ==2">{{row.read_iops}}</td>
|
||||
<td title="cols[7].title" data-sortable="cols[7].field" ng-if="current_index == 1 || current_index ==3">{{row.write_iops}}</td>
|
||||
<td title="cols[8].title" data-sortable="cols[8].field" ng-if="current_index == 2 || current_index ==3">{{row.rate}} KB/s</td>
|
||||
<td title="cols[9].title" data-sortable="cols[9].field" ng-if="current_index == 0 || current_index ==2">{{row.read_bw}} KB/s</td>
|
||||
<td title="cols[10].title" data-sortable="cols[10].field" ng-if="current_index == 1 || current_index ==3">{{row.write_bw}} KB/s</td>
|
||||
<td title="cols[5].title" data-sortable="cols[5].field" ng-if="current_mode.group[0] == 'rand'">
|
||||
{{row.rate_iops}}
|
||||
</td>
|
||||
<td title="cols[6].title" data-sortable="cols[6].field" ng-if="current_mode.group[1] == 'read'">
|
||||
{{row.read_iops}}
|
||||
</td>
|
||||
<td title="cols[7].title" data-sortable="cols[7].field" ng-if="current_mode.group[1] == 'write'">
|
||||
{{row.write_iops}}
|
||||
</td>
|
||||
<td title="cols[8].title" data-sortable="cols[8].field" ng-if="current_mode.group[0] == 'seq'">
|
||||
{{row.rate}} KB/s
|
||||
</td>
|
||||
<td title="cols[9].title" data-sortable="cols[9].field" ng-if="current_mode.group[1] == 'read'">
|
||||
{{row.read_bw}} KB/s
|
||||
</td>
|
||||
<td title="cols[10].title" data-sortable="cols[10].field" ng-if="current_mode.group[1] == 'write'">
|
||||
{{row.write_bw}} KB/s
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var json_data = "res.json";
|
||||
var num = -1;
|
||||
var colorList = ["#F44336", "#673AB7", "#03A9F4", "#4CAF50", "#FFEB3B", "#BF360C", "#795548", "#E91E63", "#3F51B5", "#00BCD4", "#CDDC39", "#FF9800", "#9E9E9E", "#9C27B0", "#009688"];
|
||||
var length = colorList.length;
|
||||
@ -88,51 +112,127 @@
|
||||
return colorList[num];
|
||||
}
|
||||
|
||||
var modes = [
|
||||
{title: "Rand Read", icon: "", id: "randread", init: "",y_axis:"IOPs/VM",y_label:"RATE IOPs Per VM"},
|
||||
{title: "Rand Write", icon: "", id: "randwrite", init: "",y_axis:"IOPs/VM",y_label:"RATE IOPs Per VM"},
|
||||
{title: "Seq Read", icon: "", id: "read", init: "",y_axis: "BW/VM(KB/s)",y_label:"RATE BW Per VM"},
|
||||
{title: "Seq Write", icon: "", id: "write", init: "",y_axis: "BW/VM(KB/s)",y_label:"RATE BW Per VM"}
|
||||
];
|
||||
var modes = {
|
||||
"randread": {
|
||||
name:"randread",
|
||||
title: "Rand Read",
|
||||
group: ["rand", "read"],
|
||||
y_axis: "IOPs/VM",
|
||||
y_label: "RATE IOPs Per VM"
|
||||
},
|
||||
"randwrite": {
|
||||
name:"randwrite",
|
||||
title: "Rand Write",
|
||||
group: ["rand", "write"],
|
||||
y_axis: "IOPs/VM",
|
||||
y_label: "RATE IOPs Per VM"
|
||||
},
|
||||
"read": {
|
||||
name:"read",
|
||||
title: "Seq Read",
|
||||
group: ["seq", "read"],
|
||||
y_axis: "BW/VM(KB/s)",
|
||||
y_label: "RATE BW Per VM"
|
||||
},
|
||||
"write": {
|
||||
name:"write",
|
||||
title: "Seq Write",
|
||||
group: ["seq", "write"],
|
||||
y_axis: "BW/VM(KB/s)",
|
||||
y_label: "RATE BW Per VM"
|
||||
},
|
||||
"randrw": {
|
||||
name:"randrw",
|
||||
title: "Rand Read/Write",
|
||||
span:"caret",
|
||||
group: ["rand", "mix"],
|
||||
y_axis: "IOPs/VM",
|
||||
y_label: "RATE IOPs Per VM"
|
||||
},
|
||||
"rw": {
|
||||
name:"rw",
|
||||
title: "Seq Read/Write",
|
||||
span:"caret",
|
||||
group: ["seq", "mix"],
|
||||
y_axis: "BW/VM(KB/s)",
|
||||
y_label: "RATE BW Per VM"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var content;
|
||||
angular.module("app", ["n3-line-chart", "ngTable"]).controller("MainCtrl", function ($scope, ngTableParams) {
|
||||
$scope.current_index = 0;
|
||||
$scope.modes = modes;
|
||||
$scope.current_mode = $scope.modes[0];
|
||||
|
||||
content = [[result]];
|
||||
|
||||
$scope.titleList = [];
|
||||
get_title($scope,content);
|
||||
|
||||
draw_chart($scope, ngTableParams, content);
|
||||
|
||||
$scope.handleEvent = function(event, index) {
|
||||
$scope.handleEvent = function(event, index, formix) {
|
||||
$scope.current_index = index;
|
||||
$scope.current_mode = $scope.modes[index];
|
||||
$scope.current_mode_name = $scope.titleList[index]["mode"];
|
||||
$scope.current_mode_description = $scope.titleList[index]["description"];
|
||||
|
||||
getCurrentMode($scope, $scope.current_mode_name, formix, content[0][index]["rwmixread"]);
|
||||
|
||||
draw_chart($scope, ngTableParams, content);
|
||||
};
|
||||
});
|
||||
|
||||
function get_title($scope, content){
|
||||
for( var item in content[0])
|
||||
{
|
||||
$scope.titleList.push({"mode": content[0][item]["mode"], "description": content[0][item]["description"]});
|
||||
}
|
||||
$scope.current_mode_name = $scope.titleList[0]["mode"];
|
||||
$scope.current_mode_description = $scope.titleList[0]["description"];
|
||||
$scope.current_mode = $scope.modes[$scope.current_mode_name];
|
||||
getCurrentMode($scope, $scope.current_mode_name, "",content[0][0]["rwmixread"]);
|
||||
}
|
||||
|
||||
function getCurrentMode($scope, modeName, formix, readpct){
|
||||
if (modeName == "rw"){
|
||||
if(formix == "") formix="read";
|
||||
$scope.current_mode = $scope.modes[formix];
|
||||
if (formix=="read") $scope.current_title = "- " +readpct +"% Read";
|
||||
else $scope.current_title = "- " +(100-readpct) +"% Write";
|
||||
}
|
||||
else if (modeName == "randrw"){
|
||||
if(formix == "") formix="read";
|
||||
$scope.current_mode = $scope.modes["rand"+formix];
|
||||
if (formix=="read") $scope.current_title = "- " +readpct +"% Read";
|
||||
else $scope.current_title = "- " +(100-readpct) +"% Write";
|
||||
}
|
||||
else{
|
||||
$scope.current_mode = $scope.modes[$scope.current_mode_name];
|
||||
$scope.current_title = "";
|
||||
}
|
||||
}
|
||||
|
||||
function get_min_hist(results) {
|
||||
var min = Number.POSITIVE_INFINITY;
|
||||
results.forEach(function (rr) {
|
||||
rr.forEach(function (d) {
|
||||
if ('write_hist' in d) {
|
||||
if ("write_hist" in d) {
|
||||
min = Math.min(min, d.write_hist[0][1]);
|
||||
}
|
||||
if ('read_hist' in d) {
|
||||
if ("read_hist" in d) {
|
||||
min = Math.min(min, d.read_hist[0][1]);
|
||||
}
|
||||
});
|
||||
});
|
||||
return min;
|
||||
|
||||
}
|
||||
|
||||
function draw_chart($scope, ngTableParams, results) {
|
||||
$scope.results = results;
|
||||
var countRep = $scope.results.length;
|
||||
var countRep2 = $scope.results[0].length;
|
||||
var mode = $scope.current_mode["id"];
|
||||
//table config
|
||||
var mode = $scope.current_mode["name"];
|
||||
|
||||
$scope.tabledata = [];
|
||||
$scope.cols = [
|
||||
{
|
||||
@ -151,7 +251,7 @@
|
||||
field: "iodepth", title: "IO Depth", sortable: "iodepth", show: true
|
||||
},
|
||||
{
|
||||
field: "rate_iops", title: "Rate IOPS", sortable: "rate_iops", show: true
|
||||
field: "rate_iops", title: "Requested IOPS", sortable: "rate_iops", show: true
|
||||
},
|
||||
{
|
||||
field: "read_iops", title: "Read IOPS", sortable: "read_iops", show: true
|
||||
@ -160,7 +260,7 @@
|
||||
field: "write_iops", title: "Write IOPS", sortable: "write_iops", show: true
|
||||
},
|
||||
{
|
||||
field: "rate", title: "Rate BW", sortable: "rate", show: true
|
||||
field: "rate", title: "Requested BW", sortable: "rate", show: true
|
||||
},
|
||||
{
|
||||
field: "read_bw", title: "Read BW", sortable: "read_bw", show: true
|
||||
@ -190,16 +290,21 @@
|
||||
$scope.tableParams.reload()
|
||||
};
|
||||
|
||||
//chart config $scope.current_mode
|
||||
var max;
|
||||
$scope.xaxisList = [];
|
||||
$scope.data = [];
|
||||
for (var i = 0; i < countRep; i++) {
|
||||
for (var k = 0; k < countRep2; k++) {
|
||||
$scope.perrow = $scope.results[i][k];
|
||||
if ($scope.perrow["mode"] == mode) {
|
||||
if ($scope.perrow["mode"] == $scope.current_mode_name && $scope.perrow["description"] == $scope.current_mode_description) {
|
||||
|
||||
if($scope.perrow.total_client_vms == 1 && countRep!=1) $scope.xaxis = 0;
|
||||
else $scope.xaxis = $scope.perrow.total_client_vms;
|
||||
$scope.xaxisList.push($scope.xaxis);
|
||||
|
||||
if (mode == "randread") {
|
||||
$scope.data.push({
|
||||
x: $scope.perrow.total_client_vms,
|
||||
x: $scope.xaxis,
|
||||
"IOPS": $scope.perrow.read_iops / $scope.perrow.total_client_vms,
|
||||
"latency1": $scope.perrow.read_hist[2][1] / 1000,
|
||||
"latency2": $scope.perrow.read_hist[3][1] / 1000,
|
||||
@ -210,7 +315,7 @@
|
||||
}
|
||||
if (mode == "randwrite") {
|
||||
$scope.data.push({
|
||||
x: $scope.perrow.total_client_vms,
|
||||
x: $scope.xaxis,
|
||||
"IOPS": $scope.perrow.write_iops / $scope.perrow.total_client_vms,
|
||||
"latency1": $scope.perrow.write_hist[2][1] / 1000,
|
||||
"latency2": $scope.perrow.write_hist[3][1] / 1000,
|
||||
@ -222,7 +327,7 @@
|
||||
}
|
||||
if (mode == "read") {
|
||||
$scope.data.push({
|
||||
x: $scope.perrow.total_client_vms,
|
||||
x: $scope.xaxis,
|
||||
"IOPS": $scope.perrow.read_bw / $scope.perrow.total_client_vms,
|
||||
"latency1": $scope.perrow.read_hist[2][1] / 1000,
|
||||
"latency2": $scope.perrow.read_hist[3][1] / 1000,
|
||||
@ -234,7 +339,7 @@
|
||||
}
|
||||
if (mode == "write") {
|
||||
$scope.data.push({
|
||||
x: $scope.perrow.total_client_vms,
|
||||
x: $scope.xaxis,
|
||||
"IOPS": $scope.perrow.write_bw / $scope.perrow.total_client_vms,
|
||||
"latency1": $scope.perrow.write_hist[2][1] / 1000,
|
||||
"latency2": $scope.perrow.write_hist[3][1] / 1000,
|
||||
@ -242,10 +347,9 @@
|
||||
"requested_rate": $scope.perrow.rate / $scope.perrow.total_client_vms
|
||||
});
|
||||
max = $scope.perrow.rate / $scope.perrow.total_client_vms;
|
||||
|
||||
}
|
||||
var pickColor = get_color();
|
||||
chName = "mode-" + $scope.perrow.mode + "_VM-" + $scope.perrow.total_client_vms;
|
||||
var chName = "mode-" + $scope.perrow.mode + "_VM-" + $scope.perrow.total_client_vms;
|
||||
$scope.pushTableData(chName, $scope.perrow, pickColor)
|
||||
|
||||
}
|
||||
@ -253,62 +357,68 @@
|
||||
}
|
||||
$scope.options = {
|
||||
series: [
|
||||
{y: 'IOPS', color: '#F44336', type: 'column', striped: true, label: $scope.current_mode["y_label"]},
|
||||
{y: "IOPS", color: "#F44336", type: "column", striped: true, label: $scope.current_mode["y_label"]},
|
||||
{
|
||||
y: 'requested_rate',
|
||||
color: '#696969',
|
||||
y: "requested_rate",
|
||||
color: "#696969",
|
||||
drawDots: false,
|
||||
thickness: '1px',
|
||||
label: 'Requested Rate',
|
||||
thickness: "1px",
|
||||
label: "Requested Rate",
|
||||
lineMode: "dashed"
|
||||
},
|
||||
{
|
||||
y: 'latency1',
|
||||
axis: 'y2',
|
||||
color: '#673AB7',
|
||||
y: "latency1",
|
||||
axis: "y2",
|
||||
color: "#673AB7",
|
||||
drawDots: true,
|
||||
dotSize: 4,
|
||||
thickness: '3px',
|
||||
label: 'Latency(ms)--90%'
|
||||
thickness: "3px",
|
||||
label: "Latency(ms)--90%"
|
||||
},
|
||||
{
|
||||
y: 'latency2',
|
||||
axis: 'y2',
|
||||
color: '#03A9F4',
|
||||
y: "latency2",
|
||||
axis: "y2",
|
||||
color: "#03A9F4",
|
||||
drawDots: true,
|
||||
dotSize: 4,
|
||||
thickness: '3px',
|
||||
label: 'Latency(ms)--99%'
|
||||
thickness: "3px",
|
||||
label: "Latency(ms)--99%"
|
||||
},
|
||||
{
|
||||
y: 'latency3',
|
||||
axis: 'y2',
|
||||
color: '#E91E63',
|
||||
y: "latency3",
|
||||
axis: "y2",
|
||||
color: "#E91E63",
|
||||
drawDots: true,
|
||||
dotSize: 4,
|
||||
thickness: '3px',
|
||||
label: 'Latency(ms)--99.9%'
|
||||
thickness: "3px",
|
||||
label: "Latency(ms)--99.9%"
|
||||
}
|
||||
],
|
||||
axes: {
|
||||
x: {key: 'x', type: 'linear', ticksFormat: 'd'},
|
||||
y: {type: 'linear', ticksFormat: 'd', innerTicks: true, max: max * 1.0005, min: 0},
|
||||
x: {key: "x", type: "linear",ticksFormatter: function(x) {
|
||||
if($.inArray(x, $scope.xaxisList)!=-1) {
|
||||
if (x == 0) return "1";
|
||||
else return x;
|
||||
}
|
||||
else return "";
|
||||
}},
|
||||
y: {type: "linear", ticksFormat: "d", innerTicks: true, max: max * 1.0005, min: 0},
|
||||
y2: {
|
||||
type: 'log',
|
||||
ticksFormat: 'd',
|
||||
type: "log",
|
||||
ticksFormat: "d",
|
||||
innerTicks: false,
|
||||
grid: true,
|
||||
min: get_min_hist($scope.results) / 1000
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'scrubber', formatter: function (x, y, series) {
|
||||
mode: "scrubber", formatter: function (x, y, series) {
|
||||
return series.label + ":" + y;
|
||||
}
|
||||
},
|
||||
tension: 0.8,
|
||||
lineMode: "cardinal",
|
||||
columnsHGap: 35
|
||||
columnsHGap: 45
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user