Commit f608340c by Sven Klemm

Add delta window function to postgres query builder

Unlike the increase function delta doesn't check for resets
and can go negative. This is similar to the prometheus delta
function.
parent 5c161529
...@@ -184,6 +184,11 @@ export default class PostgresQuery { ...@@ -184,6 +184,11 @@ export default class PostgresQuery {
switch (windows.type) { switch (windows.type) {
case 'window': case 'window':
switch (windows.params[0]) { switch (windows.params[0]) {
case 'delta':
curr = query;
prev = 'lag(' + curr + ') OVER (' + over + ')';
query = curr + ' - ' + prev;
break;
case 'increase': case 'increase':
curr = query; curr = query;
prev = 'lag(' + curr + ') OVER (' + over + ')'; prev = 'lag(' + curr + ') OVER (' + over + ')';
......
...@@ -158,6 +158,7 @@ export class PostgresQueryCtrl extends QueryCtrl { ...@@ -158,6 +158,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
text: 'Window Functions', text: 'Window Functions',
value: 'window', value: 'window',
submenu: [ submenu: [
{ text: 'Delta', value: 'delta' },
{ text: 'Increase', value: 'increase' }, { text: 'Increase', value: 'increase' },
{ text: 'Rate', value: 'rate' }, { text: 'Rate', value: 'rate' },
{ text: 'Sum', value: 'sum' }, { text: 'Sum', value: 'sum' },
......
...@@ -107,7 +107,7 @@ register({ ...@@ -107,7 +107,7 @@ register({
{ {
name: 'function', name: 'function',
type: 'string', type: 'string',
options: ['increase', 'rate', 'sum'], options: ['delta', 'increase', 'rate', 'sum'],
}, },
], ],
defaultParams: ['increase'], defaultParams: ['increase'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment