mirror of
https://github.com/grafana/grafana.git
synced 2025-09-21 05:32:52 +08:00
feat(alerting): save execution error message to annotations
This commit is contained in:
@ -31,12 +31,15 @@ func (handler *DefaultResultHandler) Handle(ctx *EvalContext) {
|
|||||||
oldState := ctx.Rule.State
|
oldState := ctx.Rule.State
|
||||||
|
|
||||||
exeuctionError := ""
|
exeuctionError := ""
|
||||||
|
annotationData := simplejson.New()
|
||||||
if ctx.Error != nil {
|
if ctx.Error != nil {
|
||||||
handler.log.Error("Alert Rule Result Error", "ruleId", ctx.Rule.Id, "error", ctx.Error)
|
handler.log.Error("Alert Rule Result Error", "ruleId", ctx.Rule.Id, "error", ctx.Error)
|
||||||
ctx.Rule.State = m.AlertStateExeuctionError
|
ctx.Rule.State = m.AlertStateExeuctionError
|
||||||
exeuctionError = ctx.Error.Error()
|
exeuctionError = ctx.Error.Error()
|
||||||
|
annotationData.Set("errorMessage", exeuctionError)
|
||||||
} else if ctx.Firing {
|
} else if ctx.Firing {
|
||||||
ctx.Rule.State = m.AlertStateType(ctx.Rule.Severity)
|
ctx.Rule.State = m.AlertStateType(ctx.Rule.Severity)
|
||||||
|
annotationData = simplejson.NewFromAny(ctx.EvalMatches)
|
||||||
} else {
|
} else {
|
||||||
ctx.Rule.State = m.AlertStateOK
|
ctx.Rule.State = m.AlertStateOK
|
||||||
}
|
}
|
||||||
@ -66,7 +69,7 @@ func (handler *DefaultResultHandler) Handle(ctx *EvalContext) {
|
|||||||
NewState: string(ctx.Rule.State),
|
NewState: string(ctx.Rule.State),
|
||||||
PrevState: string(oldState),
|
PrevState: string(oldState),
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
Data: simplejson.NewFromAny(ctx.EvalMatches),
|
Data: annotationData,
|
||||||
}
|
}
|
||||||
|
|
||||||
annotationRepo := annotations.GetRepository()
|
annotationRepo := annotations.GetRepository()
|
||||||
|
@ -49,12 +49,12 @@ func (e *GraphiteExecutor) Execute(queries tsdb.QuerySlice, context *tsdb.QueryC
|
|||||||
}
|
}
|
||||||
|
|
||||||
res, err := client.Do(req)
|
res, err := client.Do(req)
|
||||||
defer res.Body.Close()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result.Error = err
|
result.Error = err
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer res.Body.Close()
|
||||||
body, err := ioutil.ReadAll(res.Body)
|
body, err := ioutil.ReadAll(res.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result.Error = err
|
result.Error = err
|
||||||
|
Reference in New Issue
Block a user