Offset function added (#638)

* Shift function added

* Remane shift function to offset
This commit is contained in:
drakosha
2018-11-28 17:30:51 +03:00
committed by Alexander Zobnin
parent f5cb445b7a
commit e36336864a
4 changed files with 33 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ let sumSeries = ts.sumSeries;
let delta = ts.delta;
let rate = ts.rate;
let scale = (factor, datapoints) => ts.scale_perf(datapoints, factor);
let offset = (factor, datapoints) => ts.offset(datapoints, delta);
let simpleMovingAverage = (n, datapoints) => ts.simpleMovingAverage(datapoints, n);
let expMovingAverage = (a, datapoints) => ts.expMovingAverage(datapoints, a);
@@ -117,6 +118,7 @@ function unShiftTimeSeries(interval, datapoints) {
let metricFunctions = {
groupBy: groupByWrapper,
scale: scale,
offset: offset,
delta: delta,
rate: rate,
movingAverage: simpleMovingAverage,

View File

@@ -44,6 +44,15 @@ addFuncDef({
defaultParams: [100],
});
addFuncDef({
name: 'offset',
category: 'Transform',
params: [
{ name: 'delta', type: 'float', options: [-100, 100]}
],
defaultParams: [100],
});
addFuncDef({
name: 'delta',
category: 'Transform',

View File

@@ -30,5 +30,15 @@ describe('timeseries processing functions', () => {
expect(result).toEqual(expected);
done();
});
it('should properly offset metric', (done) => {
let points = [[1, 1], [-4, 2], [2, 3]];
let expected = [[101, 1], [96, 2], [102, 3]];
let result = ts.offset(points, 100);
expect(result).toEqual(expected);
done();
});
});
});

View File

@@ -191,6 +191,17 @@ function scale_perf(datapoints, factor) {
return datapoints;
}
function offset(datapoints, delta) {
for (let i = 0; i < datapoints.length; i++) {
datapoints[i] = [
datapoints[i][POINT_VALUE] + delta,
datapoints[i][POINT_TIMESTAMP]
];
}
return datapoints;
}
/**
* Simple delta. Calculate value delta between points.
* @param {*} datapoints
@@ -477,6 +488,7 @@ const exportedFunctions = {
groupBy_perf,
sumSeries,
scale,
offset,
scale_perf,
delta,
rate,