Merge branch 'show_no_data_in_list'

This commit is contained in:
bergquist 2017-01-17 09:53:38 +01:00
commit ed9595a20d
7 changed files with 29 additions and 7 deletions

View File

@ -75,6 +75,7 @@ func GetAlerts(c *middleware.Context) Response {
State: alert.State, State: alert.State,
NewStateDate: alert.NewStateDate, NewStateDate: alert.NewStateDate,
ExecutionError: alert.ExecutionError, ExecutionError: alert.ExecutionError,
EvalData: alert.EvalData,
}) })
} }

View File

@ -17,6 +17,7 @@ type AlertRule struct {
State m.AlertStateType `json:"state"` State m.AlertStateType `json:"state"`
NewStateDate time.Time `json:"newStateDate"` NewStateDate time.Time `json:"newStateDate"`
EvalDate time.Time `json:"evalDate"` EvalDate time.Time `json:"evalDate"`
EvalData *simplejson.Json `json:"evalData"`
ExecutionError string `json:"executionError"` ExecutionError string `json:"executionError"`
DashbboardUri string `json:"dashboardUri"` DashbboardUri string `json:"dashboardUri"`
} }

View File

@ -31,13 +31,17 @@ func (handler *DefaultResultHandler) Handle(evalContext *EvalContext) error {
executionError := "" executionError := ""
annotationData := simplejson.New() annotationData := simplejson.New()
if evalContext.Firing {
annotationData = simplejson.NewFromAny(evalContext.EvalMatches)
}
if evalContext.Error != nil { if evalContext.Error != nil {
executionError = evalContext.Error.Error() executionError = evalContext.Error.Error()
annotationData.Set("errorMessage", executionError) annotationData.Set("errorMessage", executionError)
} }
if evalContext.Firing { if evalContext.NoDataFound {
annotationData = simplejson.NewFromAny(evalContext.EvalMatches) annotationData.Set("no_data", true)
} }
countStateResult(evalContext.Rule.State) countStateResult(evalContext.Rule.State)

View File

@ -113,6 +113,12 @@ func HandleAlertsQuery(query *m.GetAlertsQuery) error {
return err return err
} }
for i, _ := range alerts {
if alerts[i].ExecutionError == " " {
alerts[i].ExecutionError = ""
}
}
query.Result = alerts query.Result = alerts
return nil return nil
} }

View File

@ -37,6 +37,9 @@ export class AlertListCtrl {
this.alerts = _.map(result, alert => { this.alerts = _.map(result, alert => {
alert.stateModel = alertDef.getStateDisplayModel(alert.state); alert.stateModel = alertDef.getStateDisplayModel(alert.state);
alert.newStateDateAgo = moment(alert.newStateDate).fromNow().replace(" ago", ""); alert.newStateDateAgo = moment(alert.newStateDate).fromNow().replace(" ago", "");
if (alert.evalData && alert.evalData.no_data) {
alert.no_data = true;
}
return alert; return alert;
}); });
}); });

View File

@ -82,6 +82,15 @@ export class AlertTabCtrl {
ah.time = moment(ah.time).format('MMM D, YYYY HH:mm:ss'); ah.time = moment(ah.time).format('MMM D, YYYY HH:mm:ss');
ah.stateModel = alertDef.getStateDisplayModel(ah.newState); ah.stateModel = alertDef.getStateDisplayModel(ah.newState);
ah.metrics = alertDef.joinEvalMatches(ah.data, ', '); ah.metrics = alertDef.joinEvalMatches(ah.data, ', ');
if (ah.data.errorMessage) {
ah.metrics = "Error: " + ah.data.errorMessage;
}
if (ah.data.no_data) {
ah.metrics = "(due to no data)";
}
return ah; return ah;
}); });
}); });

View File

@ -52,11 +52,11 @@
<div class="card-item-sub-name"> <div class="card-item-sub-name">
<span class="alert-list-item-state {{alert.stateModel.stateClass}}"> <span class="alert-list-item-state {{alert.stateModel.stateClass}}">
<i class="{{alert.stateModel.iconClass}}"></i> <i class="{{alert.stateModel.iconClass}}"></i>
{{alert.stateModel.text}} {{alert.stateModel.text}} <span class="small muted" ng-show="alert.no_data">(due to no data)</span>
</span> for {{alert.newStateDateAgo}} </span> for {{alert.newStateDateAgo}}
</div> </div>
<div class="small muted" ng-show="alert.executionError"> <div class="small muted" ng-show="alert.executionError !== ''">
{{alert.executionError}} Error: "{{alert.executionError}}"
</div> </div>
</div> </div>
</div> </div>
@ -64,6 +64,4 @@
</li> </li>
</ol> </ol>
</section> </section>
</div> </div>