mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
handle counter overflow and resets in rate
This commit is contained in:
parent
0935526d23
commit
a24a6624e3
@ -240,7 +240,7 @@ export default class PostgresQuery {
|
||||
let special = _.find(column, (g: any) => g.type === 'special');
|
||||
if (special) {
|
||||
let over = '';
|
||||
if (target.metricColumn) {
|
||||
if (target.metricColumn !== 'None') {
|
||||
over = 'PARTITION BY ' + target.metricColumn;
|
||||
}
|
||||
switch (special.params[0]) {
|
||||
@ -249,7 +249,9 @@ export default class PostgresQuery {
|
||||
break;
|
||||
case 'rate':
|
||||
let timeColumn = target.timeColumn;
|
||||
query = '(' + query + ' - lag(' + query + ') OVER (' + over + '))';
|
||||
let curr = query;
|
||||
let prev = 'lag(' + curr + ') OVER (' + over + ')';
|
||||
query = '(CASE WHEN ' + curr + ' >= ' + prev + ' THEN ' + curr + ' - ' + prev + ' ELSE ' + curr + ' END)';
|
||||
query += '/extract(epoch from ' + timeColumn + ' - lag(' + timeColumn + ') OVER (' + over + '))';
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user