Commit 4619a05f by bergquist

feat(alerting): save execution error message to annotations

parent c624f3d4
...@@ -31,12 +31,15 @@ func (handler *DefaultResultHandler) Handle(ctx *EvalContext) { ...@@ -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) { ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment