90 lines
1.8 KiB
JavaScript
90 lines
1.8 KiB
JavaScript
(function () {
|
|
function Graph(elem, ltdata, error) {
|
|
var chart = c3.generate({
|
|
bindto: elem,
|
|
size: {
|
|
width: 1200,
|
|
height: error ? 400 : 600,
|
|
},
|
|
data: {
|
|
columns: ltdata['data'],
|
|
regions: {
|
|
'ideal': error ? [] : [{'start': 0, 'style': 'dashed'}]
|
|
},
|
|
colors: {
|
|
'ideal': '#bbbbbb',
|
|
'txrate': '#bbbbbb',
|
|
},
|
|
axes: {
|
|
'txrate': 'y2'
|
|
}
|
|
},
|
|
point: {
|
|
show: false
|
|
},
|
|
axis: {
|
|
x: {
|
|
tick: {
|
|
values: ltdata['ticks'],
|
|
},
|
|
label: {
|
|
text: 'seconds',
|
|
position: 'outer-center'
|
|
}
|
|
},
|
|
y: {
|
|
min: 0,
|
|
max: error ? 1 : ltdata['max'],
|
|
padding: { top: 0, bottom: 0 },
|
|
type: (error ? 'log' : 'linear'),
|
|
tick: {
|
|
format: d3.format('.3f'),
|
|
},
|
|
label: {
|
|
text: (error ? 'err fraction of txrate (log)' : ltdata['yprefix'] + 'pps'),
|
|
position: 'outer-middle'
|
|
}
|
|
},
|
|
y2: {
|
|
show: true,
|
|
min: 0,
|
|
max: error ? ltdata['max'] : 1,
|
|
type: (error ? 'linear' : 'linear'),
|
|
tick: {
|
|
format: d3.format(error ? '.3f' : '.1f'),
|
|
},
|
|
padding: { top: 0, bottom: 0 },
|
|
label: {
|
|
text: error ? 'txrate ' + ltdata['yprefix'] + 'pps' : 'fraction of linerate',
|
|
position: 'outer-middle'
|
|
}
|
|
}
|
|
},
|
|
grid: {
|
|
y: {
|
|
lines: error ? [{value: ltdata['ft'], text: 'fail threshold', class: 'ft', position: 'start'}] : [{value: ltdata['max']}]
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function LoadtestGraph(elem, ltdata) {
|
|
return Graph(elem, ltdata, false);
|
|
}
|
|
|
|
function ErrorGraph(elem, ltdata) {
|
|
return Graph(elem, ltdata, true);
|
|
}
|
|
|
|
$(window).on("load", function() {
|
|
$('div.loadtest-graph').each(function(index, el) {
|
|
if (el.dataset.ltdata) {
|
|
LoadtestGraph(el, JSON.parse(el.dataset.ltdata));
|
|
} else if (el.dataset.errdata) {
|
|
ErrorGraph(el, JSON.parse(el.dataset.errdata));
|
|
}
|
|
});
|
|
});
|
|
|
|
})();
|