alerting: more specific error when missing threshold (#18221)
fixes #18184
This commit is contained in:
@@ -34,8 +34,8 @@ type thresholdEvaluator struct {
|
|||||||
|
|
||||||
func newThresholdEvaluator(typ string, model *simplejson.Json) (*thresholdEvaluator, error) {
|
func newThresholdEvaluator(typ string, model *simplejson.Json) (*thresholdEvaluator, error) {
|
||||||
params := model.Get("params").MustArray()
|
params := model.Get("params").MustArray()
|
||||||
if len(params) == 0 {
|
if len(params) == 0 || params[0] == nil {
|
||||||
return nil, fmt.Errorf("Evaluator missing threshold parameter")
|
return nil, fmt.Errorf("Evaluator '%v' is missing the threshold parameter", HumanThresholdType(typ))
|
||||||
}
|
}
|
||||||
|
|
||||||
firstParam, ok := params[0].(json.Number)
|
firstParam, ok := params[0].(json.Number)
|
||||||
@@ -139,3 +139,19 @@ func inSlice(a string, list []string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HumanThresholdType converts a treshold "type" string to a string that matches the UI
|
||||||
|
// so errors are less confusing.
|
||||||
|
func HumanThresholdType(typ string) string {
|
||||||
|
switch typ {
|
||||||
|
case "gt":
|
||||||
|
return "IS ABOVE"
|
||||||
|
case "lt":
|
||||||
|
return "IS BELOW"
|
||||||
|
case "within_range":
|
||||||
|
return "IS WITHIN RANGE"
|
||||||
|
case "outside_range":
|
||||||
|
return "IS OUTSIDE RANGE"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ func newQueryCondition(model *simplejson.Json, index int) (*QueryCondition, erro
|
|||||||
evaluatorJSON := model.Get("evaluator")
|
evaluatorJSON := model.Get("evaluator")
|
||||||
evaluator, err := NewAlertEvaluator(evaluatorJSON)
|
evaluator, err := NewAlertEvaluator(evaluatorJSON)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("error in condition %v: %v", index, err)
|
||||||
}
|
}
|
||||||
condition.Evaluator = evaluator
|
condition.Evaluator = evaluator
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user