mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
113 lines
2.7 KiB
TypeScript
113 lines
2.7 KiB
TypeScript
///<reference path="../../headers/common.d.ts" />
|
|
|
|
import _ from 'lodash';
|
|
import {
|
|
QueryPartDef,
|
|
QueryPart,
|
|
} from 'app/core/components/query_part/query_part';
|
|
|
|
var alertQueryDef = new QueryPartDef({
|
|
type: 'query',
|
|
params: [
|
|
{name: "queryRefId", type: 'string', dynamicLookup: true},
|
|
{name: "from", type: "string", options: ['1s', '10s', '1m', '5m', '10m', '15m', '1h']},
|
|
{name: "to", type: "string", options: ['now']},
|
|
],
|
|
defaultParams: ['#A', '5m', 'now', 'avg']
|
|
});
|
|
|
|
var conditionTypes = [
|
|
{text: 'Query', value: 'query'},
|
|
];
|
|
|
|
var evalFunctions = [
|
|
{text: 'IS ABOVE', value: 'gt'},
|
|
{text: 'IS BELOW', value: 'lt'},
|
|
{text: 'IS OUTSIDE RANGE', value: 'outside_range'},
|
|
{text: 'IS WITHIN RANGE', value: 'within_range'},
|
|
{text: 'HAS NO VALUE' , value: 'no_value'}
|
|
];
|
|
|
|
var reducerTypes = [
|
|
{text: 'avg()', value: 'avg'},
|
|
{text: 'min()', value: 'min'},
|
|
{text: 'max()', value: 'max'},
|
|
{text: 'sum()' , value: 'sum'},
|
|
{text: 'count()', value: 'count'},
|
|
];
|
|
|
|
var noDataModes = [
|
|
{text: 'OK', value: 'ok'},
|
|
{text: 'Alerting', value: 'alerting'},
|
|
{text: 'No Data', value: 'no_data'},
|
|
{text: 'Keep Last', value: 'keep_last'},
|
|
];
|
|
|
|
function createReducerPart(model) {
|
|
var def = new QueryPartDef({type: model.type, defaultParams: []});
|
|
return new QueryPart(model, def);
|
|
}
|
|
|
|
|
|
function getStateDisplayModel(state) {
|
|
switch (state) {
|
|
case 'ok': {
|
|
return {
|
|
text: 'OK',
|
|
iconClass: 'icon-gf icon-gf-online',
|
|
stateClass: 'alert-state-ok'
|
|
};
|
|
}
|
|
case 'alerting': {
|
|
return {
|
|
text: 'ALERTING',
|
|
iconClass: 'icon-gf icon-gf-critical',
|
|
stateClass: 'alert-state-critical'
|
|
};
|
|
}
|
|
case 'no_data': {
|
|
return {
|
|
text: 'NO DATA',
|
|
iconClass: "fa fa-question",
|
|
stateClass: 'alert-state-warning'
|
|
};
|
|
}
|
|
case 'execution_error': {
|
|
return {
|
|
text: 'EXECUTION ERROR',
|
|
iconClass: 'icon-gf icon-gf-critical',
|
|
stateClass: 'alert-state-critical'
|
|
};
|
|
}
|
|
|
|
case 'paused': {
|
|
return {
|
|
text: 'paused',
|
|
iconClass: "fa fa-pause",
|
|
stateClass: 'alert-state-paused'
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
function joinEvalMatches(matches, seperator: string) {
|
|
return _.reduce(matches, (res, ev)=> {
|
|
if (ev.Metric !== undefined && ev.Value !== undefined) {
|
|
res.push(ev.Metric + "=" + ev.Value);
|
|
}
|
|
|
|
return res;
|
|
}, []).join(seperator);
|
|
}
|
|
|
|
export default {
|
|
alertQueryDef: alertQueryDef,
|
|
getStateDisplayModel: getStateDisplayModel,
|
|
conditionTypes: conditionTypes,
|
|
evalFunctions: evalFunctions,
|
|
noDataModes: noDataModes,
|
|
reducerTypes: reducerTypes,
|
|
createReducerPart: createReducerPart,
|
|
joinEvalMatches: joinEvalMatches,
|
|
};
|