Explorar o código

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.
Sven Klemm %!s(int64=7) %!d(string=hai) anos
pai
achega
f608340c35

+ 5 - 0
public/app/plugins/datasource/postgres/postgres_query.ts

@@ -184,6 +184,11 @@ export default class PostgresQuery {
       switch (windows.type) {
         case 'window':
           switch (windows.params[0]) {
+            case 'delta':
+              curr = query;
+              prev = 'lag(' + curr + ') OVER (' + over + ')';
+              query = curr + ' - ' + prev;
+              break;
             case 'increase':
               curr = query;
               prev = 'lag(' + curr + ') OVER (' + over + ')';

+ 1 - 0
public/app/plugins/datasource/postgres/query_ctrl.ts

@@ -158,6 +158,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
       text: 'Window Functions',
       value: 'window',
       submenu: [
+        { text: 'Delta', value: 'delta' },
         { text: 'Increase', value: 'increase' },
         { text: 'Rate', value: 'rate' },
         { text: 'Sum', value: 'sum' },

+ 1 - 1
public/app/plugins/datasource/postgres/sql_part.ts

@@ -107,7 +107,7 @@ register({
     {
       name: 'function',
       type: 'string',
-      options: ['increase', 'rate', 'sum'],
+      options: ['delta', 'increase', 'rate', 'sum'],
     },
   ],
   defaultParams: ['increase'],