Merge branch 'benchmark'
This commit is contained in:
@@ -45,6 +45,17 @@ module.exports = [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'scale',
|
||||||
|
tests: {
|
||||||
|
'scale()': () => {
|
||||||
|
ts.scale(datapoints, 42);
|
||||||
|
},
|
||||||
|
'scale_perf()': () => {
|
||||||
|
ts.scale_perf(datapoints, 42);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'groupBy vs groupBy_perf',
|
name: 'groupBy vs groupBy_perf',
|
||||||
tests: {
|
tests: {
|
||||||
|
|||||||
2
dist/datasource-zabbix/dataProcessor.js
vendored
2
dist/datasource-zabbix/dataProcessor.js
vendored
@@ -103,7 +103,7 @@ System.register(['lodash', './utils', './timeseries'], function (_export, _conte
|
|||||||
rate = ts.rate;
|
rate = ts.rate;
|
||||||
|
|
||||||
scale = function scale(factor, datapoints) {
|
scale = function scale(factor, datapoints) {
|
||||||
return ts.scale(datapoints, factor);
|
return ts.scale_perf(datapoints, factor);
|
||||||
};
|
};
|
||||||
|
|
||||||
SUM = ts.SUM;
|
SUM = ts.SUM;
|
||||||
|
|||||||
2
dist/datasource-zabbix/dataProcessor.js.map
vendored
2
dist/datasource-zabbix/dataProcessor.js.map
vendored
File diff suppressed because one or more lines are too long
57
dist/datasource-zabbix/timeseries.js
vendored
57
dist/datasource-zabbix/timeseries.js
vendored
@@ -96,10 +96,16 @@ System.register(['lodash', './utils'], function (_export, _context) {
|
|||||||
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
||||||
if (point_frame_ts === frame_ts) {
|
if (point_frame_ts === frame_ts) {
|
||||||
frame_values.push(point[POINT_VALUE]);
|
frame_values.push(point[POINT_VALUE]);
|
||||||
} else {
|
} else if (point_frame_ts > frame_ts) {
|
||||||
frame_value = groupByCallback(frame_values);
|
frame_value = groupByCallback(frame_values);
|
||||||
grouped_series.push([frame_value, frame_ts]);
|
grouped_series.push([frame_value, frame_ts]);
|
||||||
frame_ts = point_frame_ts;
|
|
||||||
|
// Move frame window to next non-empty interval and fill empty by null
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
while (frame_ts < point_frame_ts) {
|
||||||
|
grouped_series.push([null, frame_ts]);
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
}
|
||||||
frame_values = [point[POINT_VALUE]];
|
frame_values = [point[POINT_VALUE]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -154,6 +160,14 @@ System.register(['lodash', './utils'], function (_export, _context) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scale_perf(datapoints, factor) {
|
||||||
|
for (var i = 0; i < datapoints.length; i++) {
|
||||||
|
datapoints[i] = [datapoints[i][POINT_VALUE] * factor, datapoints[i][POINT_TIMESTAMP]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return datapoints;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple delta. Calculate value delta between points.
|
* Simple delta. Calculate value delta between points.
|
||||||
* @param {*} datapoints
|
* @param {*} datapoints
|
||||||
@@ -195,24 +209,36 @@ System.register(['lodash', './utils'], function (_export, _context) {
|
|||||||
return newSeries;
|
return newSeries;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SUM(values) {
|
|
||||||
var sum = 0;
|
|
||||||
_.each(values, function (value) {
|
|
||||||
sum += value;
|
|
||||||
});
|
|
||||||
return sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
function COUNT(values) {
|
function COUNT(values) {
|
||||||
return values.length;
|
return values.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function SUM(values) {
|
||||||
|
var sum = null;
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
sum += values[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
function AVERAGE(values) {
|
function AVERAGE(values) {
|
||||||
var sum = 0;
|
var values_non_null = getNonNullValues(values);
|
||||||
_.each(values, function (value) {
|
if (values_non_null.length === 0) {
|
||||||
sum += value;
|
return null;
|
||||||
});
|
}
|
||||||
return sum / values.length;
|
return SUM(values_non_null) / values_non_null.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNonNullValues(values) {
|
||||||
|
var values_non_null = [];
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
values_non_null.push(values[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values_non_null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MIN(values) {
|
function MIN(values) {
|
||||||
@@ -322,6 +348,7 @@ System.register(['lodash', './utils'], function (_export, _context) {
|
|||||||
groupBy_perf: groupBy_perf,
|
groupBy_perf: groupBy_perf,
|
||||||
sumSeries: sumSeries,
|
sumSeries: sumSeries,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
|
scale_perf: scale_perf,
|
||||||
delta: delta,
|
delta: delta,
|
||||||
rate: rate,
|
rate: rate,
|
||||||
SUM: SUM,
|
SUM: SUM,
|
||||||
|
|||||||
2
dist/datasource-zabbix/timeseries.js.map
vendored
2
dist/datasource-zabbix/timeseries.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -49,6 +49,16 @@ module.exports = [{
|
|||||||
_timeseries2.default.rate(growing_series);
|
_timeseries2.default.rate(growing_series);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
name: 'scale',
|
||||||
|
tests: {
|
||||||
|
'scale()': function scale() {
|
||||||
|
_timeseries2.default.scale(datapoints, 42);
|
||||||
|
},
|
||||||
|
'scale_perf()': function scale_perf() {
|
||||||
|
_timeseries2.default.scale_perf(datapoints, 42);
|
||||||
|
}
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
name: 'groupBy vs groupBy_perf',
|
name: 'groupBy vs groupBy_perf',
|
||||||
tests: {
|
tests: {
|
||||||
|
|||||||
2
dist/test/datasource-zabbix/dataProcessor.js
vendored
2
dist/test/datasource-zabbix/dataProcessor.js
vendored
@@ -29,7 +29,7 @@ var sumSeries = _timeseries2.default.sumSeries;
|
|||||||
var delta = _timeseries2.default.delta;
|
var delta = _timeseries2.default.delta;
|
||||||
var rate = _timeseries2.default.rate;
|
var rate = _timeseries2.default.rate;
|
||||||
var scale = function scale(factor, datapoints) {
|
var scale = function scale(factor, datapoints) {
|
||||||
return _timeseries2.default.scale(datapoints, factor);
|
return _timeseries2.default.scale_perf(datapoints, factor);
|
||||||
};
|
};
|
||||||
|
|
||||||
var SUM = _timeseries2.default.SUM;
|
var SUM = _timeseries2.default.SUM;
|
||||||
|
|||||||
57
dist/test/datasource-zabbix/timeseries.js
vendored
57
dist/test/datasource-zabbix/timeseries.js
vendored
@@ -121,10 +121,16 @@ function groupBy_perf(datapoints, interval, groupByCallback) {
|
|||||||
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
||||||
if (point_frame_ts === frame_ts) {
|
if (point_frame_ts === frame_ts) {
|
||||||
frame_values.push(point[POINT_VALUE]);
|
frame_values.push(point[POINT_VALUE]);
|
||||||
} else {
|
} else if (point_frame_ts > frame_ts) {
|
||||||
frame_value = groupByCallback(frame_values);
|
frame_value = groupByCallback(frame_values);
|
||||||
grouped_series.push([frame_value, frame_ts]);
|
grouped_series.push([frame_value, frame_ts]);
|
||||||
frame_ts = point_frame_ts;
|
|
||||||
|
// Move frame window to next non-empty interval and fill empty by null
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
while (frame_ts < point_frame_ts) {
|
||||||
|
grouped_series.push([null, frame_ts]);
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
}
|
||||||
frame_values = [point[POINT_VALUE]];
|
frame_values = [point[POINT_VALUE]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -179,6 +185,14 @@ function scale(datapoints, factor) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scale_perf(datapoints, factor) {
|
||||||
|
for (var i = 0; i < datapoints.length; i++) {
|
||||||
|
datapoints[i] = [datapoints[i][POINT_VALUE] * factor, datapoints[i][POINT_TIMESTAMP]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return datapoints;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple delta. Calculate value delta between points.
|
* Simple delta. Calculate value delta between points.
|
||||||
* @param {*} datapoints
|
* @param {*} datapoints
|
||||||
@@ -220,24 +234,36 @@ function rate(datapoints) {
|
|||||||
return newSeries;
|
return newSeries;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SUM(values) {
|
|
||||||
var sum = 0;
|
|
||||||
_lodash2.default.each(values, function (value) {
|
|
||||||
sum += value;
|
|
||||||
});
|
|
||||||
return sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
function COUNT(values) {
|
function COUNT(values) {
|
||||||
return values.length;
|
return values.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function SUM(values) {
|
||||||
|
var sum = null;
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
sum += values[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
function AVERAGE(values) {
|
function AVERAGE(values) {
|
||||||
var sum = 0;
|
var values_non_null = getNonNullValues(values);
|
||||||
_lodash2.default.each(values, function (value) {
|
if (values_non_null.length === 0) {
|
||||||
sum += value;
|
return null;
|
||||||
});
|
}
|
||||||
return sum / values.length;
|
return SUM(values_non_null) / values_non_null.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNonNullValues(values) {
|
||||||
|
var values_non_null = [];
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
values_non_null.push(values[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values_non_null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MIN(values) {
|
function MIN(values) {
|
||||||
@@ -338,6 +364,7 @@ var exportedFunctions = {
|
|||||||
groupBy_perf: groupBy_perf,
|
groupBy_perf: groupBy_perf,
|
||||||
sumSeries: sumSeries,
|
sumSeries: sumSeries,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
|
scale_perf: scale_perf,
|
||||||
delta: delta,
|
delta: delta,
|
||||||
rate: rate,
|
rate: rate,
|
||||||
SUM: SUM,
|
SUM: SUM,
|
||||||
|
|||||||
@@ -45,6 +45,17 @@ module.exports = [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'scale',
|
||||||
|
tests: {
|
||||||
|
'scale()': () => {
|
||||||
|
ts.scale(datapoints, 42);
|
||||||
|
},
|
||||||
|
'scale_perf()': () => {
|
||||||
|
ts.scale_perf(datapoints, 42);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'groupBy vs groupBy_perf',
|
name: 'groupBy vs groupBy_perf',
|
||||||
tests: {
|
tests: {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ let groupBy_exported = (interval, groupFunc, datapoints) => groupBy(datapoints,
|
|||||||
let sumSeries = ts.sumSeries;
|
let sumSeries = ts.sumSeries;
|
||||||
let delta = ts.delta;
|
let delta = ts.delta;
|
||||||
let rate = ts.rate;
|
let rate = ts.rate;
|
||||||
let scale = (factor, datapoints) => ts.scale(datapoints, factor);
|
let scale = (factor, datapoints) => ts.scale_perf(datapoints, factor);
|
||||||
|
|
||||||
let SUM = ts.SUM;
|
let SUM = ts.SUM;
|
||||||
let COUNT = ts.COUNT;
|
let COUNT = ts.COUNT;
|
||||||
|
|||||||
@@ -108,10 +108,16 @@ function groupBy_perf(datapoints, interval, groupByCallback) {
|
|||||||
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
point_frame_ts = getPointTimeFrame(point[POINT_TIMESTAMP], ms_interval);
|
||||||
if (point_frame_ts === frame_ts) {
|
if (point_frame_ts === frame_ts) {
|
||||||
frame_values.push(point[POINT_VALUE]);
|
frame_values.push(point[POINT_VALUE]);
|
||||||
} else {
|
} else if (point_frame_ts > frame_ts) {
|
||||||
frame_value = groupByCallback(frame_values);
|
frame_value = groupByCallback(frame_values);
|
||||||
grouped_series.push([frame_value, frame_ts]);
|
grouped_series.push([frame_value, frame_ts]);
|
||||||
frame_ts = point_frame_ts;
|
|
||||||
|
// Move frame window to next non-empty interval and fill empty by null
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
while (frame_ts < point_frame_ts) {
|
||||||
|
grouped_series.push([null, frame_ts]);
|
||||||
|
frame_ts += ms_interval;
|
||||||
|
}
|
||||||
frame_values = [point[POINT_VALUE]];
|
frame_values = [point[POINT_VALUE]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,6 +175,17 @@ function scale(datapoints, factor) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scale_perf(datapoints, factor) {
|
||||||
|
for (let i = 0; i < datapoints.length; i++) {
|
||||||
|
datapoints[i] = [
|
||||||
|
datapoints[i][POINT_VALUE] * factor,
|
||||||
|
datapoints[i][POINT_TIMESTAMP]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return datapoints;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple delta. Calculate value delta between points.
|
* Simple delta. Calculate value delta between points.
|
||||||
* @param {*} datapoints
|
* @param {*} datapoints
|
||||||
@@ -209,24 +226,36 @@ function rate(datapoints) {
|
|||||||
return newSeries;
|
return newSeries;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SUM(values) {
|
|
||||||
var sum = 0;
|
|
||||||
_.each(values, function (value) {
|
|
||||||
sum += value;
|
|
||||||
});
|
|
||||||
return sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
function COUNT(values) {
|
function COUNT(values) {
|
||||||
return values.length;
|
return values.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function SUM(values) {
|
||||||
|
var sum = null;
|
||||||
|
for (let i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
sum += values[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
function AVERAGE(values) {
|
function AVERAGE(values) {
|
||||||
var sum = 0;
|
let values_non_null = getNonNullValues(values);
|
||||||
_.each(values, function (value) {
|
if (values_non_null.length === 0) {
|
||||||
sum += value;
|
return null;
|
||||||
});
|
}
|
||||||
return sum / values.length;
|
return SUM(values_non_null) / values_non_null.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNonNullValues(values) {
|
||||||
|
let values_non_null = [];
|
||||||
|
for (let i = 0; i < values.length; i++) {
|
||||||
|
if (values[i] !== null) {
|
||||||
|
values_non_null.push(values[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values_non_null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MIN(values) {
|
function MIN(values) {
|
||||||
@@ -327,6 +356,7 @@ const exportedFunctions = {
|
|||||||
groupBy_perf,
|
groupBy_perf,
|
||||||
sumSeries,
|
sumSeries,
|
||||||
scale,
|
scale,
|
||||||
|
scale_perf,
|
||||||
delta,
|
delta,
|
||||||
rate,
|
rate,
|
||||||
SUM,
|
SUM,
|
||||||
|
|||||||
Reference in New Issue
Block a user