|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
import { PanelModel } from 'app/features/dashboard/state'; |
|
|
|
|
|
|
|
|
|
export const hiddenReducerTypes = ['percent_diff', 'percent_diff_abs']; |
|
|
|
|
export class ThresholdMapper { |
|
|
|
|
static alertToGraphThresholds(panel: PanelModel) { |
|
|
|
|
if (!panel.alert) { |
|
|
|
@ -14,16 +15,17 @@ export class ThresholdMapper { |
|
|
|
|
|
|
|
|
|
const evaluator = condition.evaluator; |
|
|
|
|
const thresholds: any[] = (panel.thresholds = []); |
|
|
|
|
const visible = hiddenReducerTypes.indexOf(condition.reducer?.type) === -1; |
|
|
|
|
|
|
|
|
|
switch (evaluator.type) { |
|
|
|
|
case 'gt': { |
|
|
|
|
const value = evaluator.params[0]; |
|
|
|
|
thresholds.push({ value: value, op: 'gt' }); |
|
|
|
|
thresholds.push({ value: value, op: 'gt', visible }); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'lt': { |
|
|
|
|
const value = evaluator.params[0]; |
|
|
|
|
thresholds.push({ value: value, op: 'lt' }); |
|
|
|
|
thresholds.push({ value: value, op: 'lt', visible }); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'outside_range': { |
|
|
|
@ -31,11 +33,11 @@ export class ThresholdMapper { |
|
|
|
|
const value2 = evaluator.params[1]; |
|
|
|
|
|
|
|
|
|
if (value1 > value2) { |
|
|
|
|
thresholds.push({ value: value1, op: 'gt' }); |
|
|
|
|
thresholds.push({ value: value2, op: 'lt' }); |
|
|
|
|
thresholds.push({ value: value1, op: 'gt', visible }); |
|
|
|
|
thresholds.push({ value: value2, op: 'lt', visible }); |
|
|
|
|
} else { |
|
|
|
|
thresholds.push({ value: value1, op: 'lt' }); |
|
|
|
|
thresholds.push({ value: value2, op: 'gt' }); |
|
|
|
|
thresholds.push({ value: value1, op: 'lt', visible }); |
|
|
|
|
thresholds.push({ value: value2, op: 'gt', visible }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
@ -45,11 +47,11 @@ export class ThresholdMapper { |
|
|
|
|
const value2 = evaluator.params[1]; |
|
|
|
|
|
|
|
|
|
if (value1 > value2) { |
|
|
|
|
thresholds.push({ value: value1, op: 'lt' }); |
|
|
|
|
thresholds.push({ value: value2, op: 'gt' }); |
|
|
|
|
thresholds.push({ value: value1, op: 'lt', visible }); |
|
|
|
|
thresholds.push({ value: value2, op: 'gt', visible }); |
|
|
|
|
} else { |
|
|
|
|
thresholds.push({ value: value1, op: 'gt' }); |
|
|
|
|
thresholds.push({ value: value2, op: 'lt' }); |
|
|
|
|
thresholds.push({ value: value1, op: 'gt', visible }); |
|
|
|
|
thresholds.push({ value: value2, op: 'lt', visible }); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|