Offset function added (#638)
* Shift function added * Remane shift function to offset
This commit is contained in:
committed by
Alexander Zobnin
parent
f5cb445b7a
commit
e36336864a
@@ -9,6 +9,7 @@ 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_perf(datapoints, factor);
|
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 simpleMovingAverage = (n, datapoints) => ts.simpleMovingAverage(datapoints, n);
|
||||||
let expMovingAverage = (a, datapoints) => ts.expMovingAverage(datapoints, a);
|
let expMovingAverage = (a, datapoints) => ts.expMovingAverage(datapoints, a);
|
||||||
|
|
||||||
@@ -117,6 +118,7 @@ function unShiftTimeSeries(interval, datapoints) {
|
|||||||
let metricFunctions = {
|
let metricFunctions = {
|
||||||
groupBy: groupByWrapper,
|
groupBy: groupByWrapper,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
|
offset: offset,
|
||||||
delta: delta,
|
delta: delta,
|
||||||
rate: rate,
|
rate: rate,
|
||||||
movingAverage: simpleMovingAverage,
|
movingAverage: simpleMovingAverage,
|
||||||
|
|||||||
@@ -44,6 +44,15 @@ addFuncDef({
|
|||||||
defaultParams: [100],
|
defaultParams: [100],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addFuncDef({
|
||||||
|
name: 'offset',
|
||||||
|
category: 'Transform',
|
||||||
|
params: [
|
||||||
|
{ name: 'delta', type: 'float', options: [-100, 100]}
|
||||||
|
],
|
||||||
|
defaultParams: [100],
|
||||||
|
});
|
||||||
|
|
||||||
addFuncDef({
|
addFuncDef({
|
||||||
name: 'delta',
|
name: 'delta',
|
||||||
category: 'Transform',
|
category: 'Transform',
|
||||||
|
|||||||
@@ -30,5 +30,15 @@ describe('timeseries processing functions', () => {
|
|||||||
expect(result).toEqual(expected);
|
expect(result).toEqual(expected);
|
||||||
done();
|
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();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -191,6 +191,17 @@ function scale_perf(datapoints, factor) {
|
|||||||
return datapoints;
|
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.
|
* Simple delta. Calculate value delta between points.
|
||||||
* @param {*} datapoints
|
* @param {*} datapoints
|
||||||
@@ -477,6 +488,7 @@ const exportedFunctions = {
|
|||||||
groupBy_perf,
|
groupBy_perf,
|
||||||
sumSeries,
|
sumSeries,
|
||||||
scale,
|
scale,
|
||||||
|
offset,
|
||||||
scale_perf,
|
scale_perf,
|
||||||
delta,
|
delta,
|
||||||
rate,
|
rate,
|
||||||
|
|||||||
Reference in New Issue
Block a user