Commit eb268b0c authored by Sven Franck's avatar Sven Franck

added pystones/sec, fixed graph rounding small numbers

parent 654768dc
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
/* graph */ /* graph */
#results_list #graph_container_cell { min-height:360px; padding: .25em; max-width: 80%; margin: 2em auto;} #results_list #graph_container_cell { min-height:360px; padding: .25em; max-width: 80%; margin: 2em auto;}
#results_list .jqplot-table-legend td {padding: 0 .2em;} #results_list .jqplot-table-legend td {padding: 0 .2em;}
#results_list .jqplot-table-legend {margin: 0;} #results_list .jqplot-table-legend {margin: 0; border: 0 none;}
/* popups */ /* popups */
.ui-collapsible-popup {padding: 0;} .ui-collapsible-popup {padding: 0;}
.ui-collapsible-popup .ui-collapsible-set-horizontal .ui-collapsible-content {margin-top: -15px; border:0 none; padding: 0;} .ui-collapsible-popup .ui-collapsible-set-horizontal .ui-collapsible-content {margin-top: -15px; border:0 none; padding: 0;}
...@@ -102,6 +102,7 @@ ...@@ -102,6 +102,7 @@
<select data-theme="f" id="form_results_sort" name="form_results_sort"> <select data-theme="f" id="form_results_sort" name="form_results_sort">
<option value="sort_provider_az" data-i18n="results.sort.az" selected="selected" data-placeholder="true">Provider A>Z</option> <option value="sort_provider_az" data-i18n="results.sort.az" selected="selected" data-placeholder="true">Provider A>Z</option>
<option value="sort_provider_za" data-i18n="results.sort.za">Provider Z>A</option> <option value="sort_provider_za" data-i18n="results.sort.za">Provider Z>A</option>
<!-- Doesn't work yet, because data is not kept in same JIO -->
<!-- <!--
<option value="sort_price_highest" data-i18n="results.sort.highest_price">Highest Price</option> <option value="sort_price_highest" data-i18n="results.sort.highest_price">Highest Price</option>
<option value="sort_price_lowest" data-i18n="results.sort.lowest_price">Lowest Price</option> <option value="sort_price_lowest" data-i18n="results.sort.lowest_price">Lowest Price</option>
...@@ -156,6 +157,7 @@ ...@@ -156,6 +157,7 @@
(function () { (function () {
var timer = null, var timer = null,
stored_regex = { stored_regex = {
// TODO: waste of RegExp, albeit... used on every table upload, so better cache here
re_href: new RegExp("tmp_href", "g"), // link to provider re_href: new RegExp("tmp_href", "g"), // link to provider
re_title : new RegExp("tmp_title", "g"), // text info for link to provider re_title : new RegExp("tmp_title", "g"), // text info for link to provider
re_img_path : new RegExp("tmp_image_path", "g"), // path to logo of provider re_img_path : new RegExp("tmp_image_path", "g"), // path to logo of provider
...@@ -169,7 +171,8 @@ ...@@ -169,7 +171,8 @@
re_currency: new RegExp("tmp_currency", "g"), // currency of quotation (hardcoded $) re_currency: new RegExp("tmp_currency", "g"), // currency of quotation (hardcoded $)
re_py: new RegExp("tmp_pystone", "g"), // lookup pystone average re_py: new RegExp("tmp_pystone", "g"), // lookup pystone average
re_sql: new RegExp("tmp_sqlbench", "g"), // lookup sqlbench average re_sql: new RegExp("tmp_sqlbench", "g"), // lookup sqlbench average
re_unit: new RegExp("tmp_unit", "g") // performance units re_unit_py: new RegExp("tmp_unit_py", "g"), // performance units pystone
re_unit_sql: new RegExp("tmp_unit_sql", "g") // performance units sqlbench
}, },
getParameterByName = function (name) { getParameterByName = function (name) {
...@@ -326,17 +329,27 @@ ...@@ -326,17 +329,27 @@
machine_performance = { machine_performance = {
_id: machine_id, _id: machine_id,
pystone: { pystone: {
min:m["pystone"]["min"], time: {
avg:m["pystone"]["avg"], min:m["pystone"]["time"]["min"],
max:m["pystone"]["max"] avg:m["pystone"]["time"]["avg"],
max:m["pystone"]["time"]["max"]
},
score: {
min:m["pystone"]["score"]["min"],
avg:m["pystone"]["score"]["avg"],
max:m["pystone"]["score"]["max"]
}
}, },
sqlbench: { sqlbench: {
min:m["sqlbench"]["min"], time: {
avg:m["sqlbench"]["avg"], min:m["sqlbench"]["time"]["min"],
max:m["sqlbench"]["max"] avg:m["sqlbench"]["time"]["avg"],
max:m["sqlbench"]["time"]["max"]
}
} }
}; };
$.fn.fauna.performance_avgs[machine_id] = [m["pystone"]["avg"],m["sqlbench"]["avg"]]; // table will show pystone score and sqlbench time!
$.fn.fauna.performance_avgs[machine_id] = [m["pystone"]["score"]["avg"],m["sqlbench"]["time"]["avg"]];
$.fn.fauna.jio_performance_details.put(machine_performance); $.fn.fauna.jio_performance_details.put(machine_performance);
} }
}; };
...@@ -380,10 +393,11 @@ ...@@ -380,10 +393,11 @@
} }
}; };
// this is becoming to complex, TODO: simplify!!! // TODO: simplify!!!
// ================== Complex Query Builder ================= // ================== Complex Query Builder =================
if ($.fn.fauna.formdata !== "" || provider_filter === "all") { if ($.fn.fauna.formdata !== "" || provider_filter === "all") {
// loop reference
// construct search term from selected criteria
references = getObjectSize($.fn.fauna.references); references = getObjectSize($.fn.fauna.references);
for (i in $.fn.fauna.references) { for (i in $.fn.fauna.references) {
if ($.fn.fauna.references.hasOwnProperty(i)) { if ($.fn.fauna.references.hasOwnProperty(i)) {
...@@ -408,6 +422,7 @@ ...@@ -408,6 +422,7 @@
$('.search_criteria').text(); $('.search_criteria').text();
} }
// filter - look up all fields and custom-made searchtext
if (search_term) { if (search_term) {
sort_string = sort_string =
"percentile: = %" + search_term + "percentile: = %" + search_term +
...@@ -422,7 +437,7 @@ ...@@ -422,7 +437,7 @@
} }
} else { } else {
// we might be switching view from a provider filter_value // we might be switching view from a provider filter_value
// if so, don't load full result set, only provider // if so, don't load full result set, only selected provider
if(provider_filter !== "default" && if(provider_filter !== "default" &&
provider_filter !== null && provider_filter !== null &&
provider_filter !== "all") { provider_filter !== "all") {
...@@ -433,15 +448,15 @@ ...@@ -433,15 +448,15 @@
} }
} }
// put all strings together // concat all search strings
if ($.fn.fauna.formdata !== "" || sort_string !== "" || query_string !== "") { if ($.fn.fauna.formdata !== "" || sort_string !== "" || query_string !== "") {
query_object.query.query = query_string + sort_string; query_object.query.query = query_string + sort_string;
// deeplink safety // deeplink safety (if deeplinking to results, clean the query string)
if (query_object.query.query === "") { if (query_object.query.query === "") {
delete query_object.query.query; delete query_object.query.query;
} }
} }
// ================== /DONE/ ================= // ================== /QUERY DONE/ =================
$.fn.util.spin('show'); $.fn.util.spin('show');
...@@ -451,6 +466,7 @@ ...@@ -451,6 +466,7 @@
function (err, response){ function (err, response){
var table_target = $(".rendered_result_wrapper"), plot1; var table_target = $(".rendered_result_wrapper"), plot1;
// switch between table and graph
// make a table // make a table
if ($("#form_results_view").val() === "display_list") { if ($("#form_results_view").val() === "display_list") {
...@@ -490,6 +506,8 @@ ...@@ -490,6 +506,8 @@
for (i = 0; i < response.length; i += 1) { for (i = 0; i < response.length; i += 1) {
entry = response[i]; entry = response[i];
machine_currency = "$"; machine_currency = "$";
machine_py_unit = " p/s";
machine_sql_unit = " s";
machine_price = $.fn.fauna.pricing[entry["_id"]] machine_price = $.fn.fauna.pricing[entry["_id"]]
if (entry["provider"] !== "") { if (entry["provider"] !== "") {
...@@ -508,9 +526,11 @@ ...@@ -508,9 +526,11 @@
machine_py = "n/a"; machine_py = "n/a";
machine_sql = "n/a"; machine_sql = "n/a";
machine_performance_unit = ""; machine_performance_unit = "";
machine_py_unit = "";
machine_sql_unit = "";
} else { } else {
machine_py = $.fn.fauna.performance_avgs[entry["_id"]][0].toFixed(2); machine_py = $.fn.fauna.performance_avgs[entry["_id"]][0].toFixed(0);
machine_sql = $.fn.fauna.performance_avgs[entry["_id"]][1].toFixed(2); machine_sql = $.fn.fauna.performance_avgs[entry["_id"]][1].toFixed(0);
} }
if ($.fn.fauna.pricing[entry["_id"]] === 0 || if ($.fn.fauna.pricing[entry["_id"]] === 0 ||
$.fn.fauna.pricing[entry["_id"]] === undefined) { $.fn.fauna.pricing[entry["_id"]] === undefined) {
...@@ -531,7 +551,8 @@ ...@@ -531,7 +551,8 @@
.replace(stored_regex.re_currency, machine_currency) .replace(stored_regex.re_currency, machine_currency)
.replace(stored_regex.re_py, machine_py) .replace(stored_regex.re_py, machine_py)
.replace(stored_regex.re_sql, machine_sql) .replace(stored_regex.re_sql, machine_sql)
.replace(stored_regex.re_unit, machine_performance_unit); .replace(stored_regex.re_unit_py, machine_py_unit)
.replace(stored_regex.re_unit_sql, machine_sql_unit);
allRows += instance; allRows += instance;
machine_name = ""; machine_name = "";
...@@ -581,7 +602,7 @@ ...@@ -581,7 +602,7 @@
plotLables = [], plotLables = [],
// TODO: make this generic // TODO: make this generic
toggle_inputs = $("#results_table-popup input"), toggle_inputs = $("#results_table-popup input"),
toggle_label toggle_label,
i, i,
j; j;
...@@ -590,7 +611,8 @@ ...@@ -590,7 +611,8 @@
entry = response[i]; entry = response[i];
if (entry["provider"] !== "") { if (entry["provider"] !== "") {
series_providers.push(entry["provider"]); series_providers.push(entry["provider"]);
series_availability.push( roundNumber(entry["percentile"]/100) )
series_availability.push( roundNumber(entry["percentile"]/100) );
series_cost.push( $.fn.fauna.pricing[entry["_id"]] || entry["cost"] || 0 ); series_cost.push( $.fn.fauna.pricing[entry["_id"]] || entry["cost"] || 0 );
// we could jio.get, but it takes to long to create an array // we could jio.get, but it takes to long to create an array
...@@ -636,7 +658,7 @@ ...@@ -636,7 +658,7 @@
.append( $('<tr><td colspan="5"><div id="graph_container_cell"></div></td></tr>') ) .append( $('<tr><td colspan="5"><div id="graph_container_cell"></div></td></tr>') )
plotOpts = { plotOpts = {
title: 'Performance (s) vs Uptime (%), Cost ($/h)', title: 'Performance vs Uptime, Cost',
seriesDefaults:{ seriesDefaults:{
renderer:$.jqplot.BarRenderer, renderer:$.jqplot.BarRenderer,
rendererOptions:{ /* varyBarColor : true,*/ barWidth: useBarWidth } rendererOptions:{ /* varyBarColor : true,*/ barWidth: useBarWidth }
...@@ -658,7 +680,7 @@ ...@@ -658,7 +680,7 @@
xaxis: config_xaxis, xaxis: config_xaxis,
yaxis:{ yaxis:{
label:'', label:'',
renderer:$.jqplot.LogAxisRenderer renderer:$.jqplot.LogAxisRenderer,
// rendererOptions: { tickDistribution: "power" }, // rendererOptions: { tickDistribution: "power" },
// max: 1200, // max: 1200,
// renderer: $.jqplot.CategoryAxisRenderer, // renderer: $.jqplot.CategoryAxisRenderer,
...@@ -669,7 +691,10 @@ ...@@ -669,7 +691,10 @@
// autoscale: true // autoscale: true
}, },
y2axis:{ y2axis:{
label: '' label: '',
tickOptions: {
formatString: '%.3f '
}
// renderer: $.jqplot.CategoryAxisRenderer, // renderer: $.jqplot.CategoryAxisRenderer,
//btickSpacing: 50, //btickSpacing: 50,
// min: 0, // min: 0,
...@@ -693,32 +718,32 @@ ...@@ -693,32 +718,32 @@
// y-axis - only add series, if columntoggle is checked // y-axis - only add series, if columntoggle is checked
// needs to be set after defining object to update accordingly // needs to be set after defining object to update accordingly
// TODO: not generic.. redo... // TODO: this is not generic.. redo...
for (i = 0; i < toggle_inputs.length; i += 1) { for (i = 0; i < toggle_inputs.length; i += 1) {
if (toggle_inputs[i].checked) { if (toggle_inputs[i].checked) {
switch (i) { switch (i) {
case 2: case 2:
// 0-1 // 0-1
plotSeries.push(series_availability); plotSeries.push(series_availability);
plotLables.push("Availability"); plotLables.push("Availability (%)");
series_colors.push(makeColors(series_availability, "max", "norm")); series_colors.push(makeColors(series_availability, "max", "norm"));
break; break;
case 3: case 3:
// 0-5 // 0-5
plotSeries.push(series_py); plotSeries.push(series_py);
plotLables.push("PyStone"); plotLables.push("PyStone (p/s)");
series_colors.push(makeColors(series_py, "min", "log")); series_colors.push(makeColors(series_py, "min", "log"));
break; break;
case 4: case 4:
// 0-700 // 0-700
plotSeries.push(series_sql); plotSeries.push(series_sql);
plotLables.push("SQLBench"); plotLables.push("SQLBench (s)");
series_colors.push(makeColors(series_sql, "min", "log")); series_colors.push(makeColors(series_sql, "min", "log"));
break; break;
case 5: case 5:
// 0-1 // 0-1
plotSeries.push(series_cost); plotSeries.push(series_cost);
plotLables.push("Cost"); plotLables.push("Cost ($/h)");
series_colors.push(makeColors(series_cost, "min", "norm")); series_colors.push(makeColors(series_cost, "min", "norm"));
break; break;
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</head> </head>
<body> <body>
<table> <table>
<!-- tmp_result_row start --><tr id="tmp_result_row"><td><a href="#" title="tmp_title"><span class="image_wrapper"><img src="tmp_image_path" alt="tmp_alias"></span></a><h2 class="provider_name small">tmp_alias</h2></td><td><span class="key regular">tmp_name</span></td><td><span class="key regular key_availability">tmp_percentile&nbsp;%</span></td><td><span class="key regular key_pystone">tmp_pystonetmp_unit</span></td><td><span class="key regular key_sql">tmp_sqlbenchtmp_unit</span></td><td><span class="key regular key_cost">tmp_price&nbsp;tmp_currency</span></td><td><a data-position-to="window" class="t scale-a popup_trigger" href="#provider_details" data-reference="tmp_comp" data-rel="popup" data-role="button" data-theme="c" data-icon="info" data-inline="true" data-i18n-target=".ui-btn-text" data-i18n="[title]gen.details_info;gen.details">Details</a></td></td></tr><!-- tmp_result_row end --> <!-- tmp_result_row start --><tr id="tmp_result_row"><td><a href="#" title="tmp_title"><span class="image_wrapper"><img src="tmp_image_path" alt="tmp_alias"></span></a><h2 class="provider_name small">tmp_alias</h2></td><td><span class="key regular">tmp_name</span></td><td><span class="key regular key_availability">tmp_percentile&nbsp;%</span></td><td><span class="key regular key_pystone">tmp_pystonetmp_unit_py</span></td><td><span class="key regular key_sql">tmp_sqlbenchtmp_unit_sql</span></td><td><span class="key regular key_cost">tmp_price&nbsp;tmp_currency</span></td><td><a data-position-to="window" class="t scale-a popup_trigger" href="#provider_details" data-reference="tmp_comp" data-rel="popup" data-role="button" data-theme="c" data-icon="info" data-inline="true" data-i18n-target=".ui-btn-text" data-i18n="[title]gen.details_info;gen.details">Details</a></td></td></tr><!-- tmp_result_row end -->
<!-- <!--
<tr> <tr>
<td> <td>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment