From d261fa28859b73a9e8eee4d83f6f213f929d994e Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 21 Jun 2019 23:03:19 +0300 Subject: [PATCH] app/vmselect/promql: add `deriv_fast` function for calculating fast derivative `deriv_fast` calculates derivative based on the first and the last point on the interval instead of calculating linear regression based on all the data points on the interval. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/73 --- app/vmselect/promql/rollup.go | 1 + app/vmselect/promql/rollup_test.go | 1 + 2 files changed, 2 insertions(+) diff --git a/app/vmselect/promql/rollup.go b/app/vmselect/promql/rollup.go index 7370a9c11..b73b450de 100644 --- a/app/vmselect/promql/rollup.go +++ b/app/vmselect/promql/rollup.go @@ -20,6 +20,7 @@ var rollupFuncs = map[string]newRollupFunc{ "changes": newRollupFuncOneArg(rollupChanges), "delta": newRollupFuncOneArg(rollupDelta), "deriv": newRollupFuncOneArg(rollupDerivSlow), + "deriv_fast": newRollupFuncOneArg(rollupDerivFast), "holt_winters": newRollupHoltWinters, "idelta": newRollupFuncOneArg(rollupIdelta), "increase": newRollupFuncOneArg(rollupDelta), // + rollupFuncsRemoveCounterResets diff --git a/app/vmselect/promql/rollup_test.go b/app/vmselect/promql/rollup_test.go index 6ddea58ed..519283227 100644 --- a/app/vmselect/promql/rollup_test.go +++ b/app/vmselect/promql/rollup_test.go @@ -193,6 +193,7 @@ func TestRollupNewRollupFuncSuccess(t *testing.T) { f("changes", 10) f("delta", -89) f("deriv", -266.85860231406065) + f("deriv_fast", -712) f("idelta", 0) f("increase", 275) f("irate", 0)