Alerting: Use common StateReason values for NoData/Error mapped states (#76781)

Fix hardcoded state reasons
This commit is contained in:
Alexander Weaver 2023-10-18 17:26:41 -05:00 committed by GitHub
parent d98edad953
commit acee3efcf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -108,6 +108,7 @@ const (
const ( const (
StateReasonMissingSeries = "MissingSeries" StateReasonMissingSeries = "MissingSeries"
StateReasonNoData = "NoData"
StateReasonError = "Error" StateReasonError = "Error"
StateReasonPaused = "Paused" StateReasonPaused = "Paused"
StateReasonUpdated = "Updated" StateReasonUpdated = "Updated"

View File

@ -268,7 +268,7 @@ func resultError(state *State, rule *models.AlertRule, result eval.Result, logge
resultAlerting(state, rule, result, logger) resultAlerting(state, rule, result, logger)
// This is a special case where Alerting and Pending should also have an error and reason // This is a special case where Alerting and Pending should also have an error and reason
state.Error = result.Error state.Error = result.Error
state.StateReason = "error" state.StateReason = models.StateReasonError
case models.ErrorErrState: case models.ErrorErrState:
if state.State == eval.Error { if state.State == eval.Error {
prevEndsAt := state.EndsAt prevEndsAt := state.EndsAt
@ -326,7 +326,7 @@ func resultNoData(state *State, rule *models.AlertRule, result eval.Result, logg
case models.Alerting: case models.Alerting:
logger.Debug("Execution no data state is Alerting", "handler", "resultAlerting", "previous_handler", "resultNoData") logger.Debug("Execution no data state is Alerting", "handler", "resultAlerting", "previous_handler", "resultNoData")
resultAlerting(state, rule, result, logger) resultAlerting(state, rule, result, logger)
state.StateReason = models.NoData.String() state.StateReason = models.StateReasonNoData
case models.NoData: case models.NoData:
if state.State == eval.NoData { if state.State == eval.NoData {
prevEndsAt := state.EndsAt prevEndsAt := state.EndsAt
@ -355,7 +355,7 @@ func resultNoData(state *State, rule *models.AlertRule, result eval.Result, logg
case models.OK: case models.OK:
logger.Debug("Execution no data state is Normal", "handler", "resultNormal", "previous_handler", "resultNoData") logger.Debug("Execution no data state is Normal", "handler", "resultNormal", "previous_handler", "resultNoData")
resultNormal(state, rule, result, logger) resultNormal(state, rule, result, logger)
state.StateReason = models.NoData.String() state.StateReason = models.StateReasonNoData
default: default:
err := fmt.Errorf("unsupported no data state: %s", rule.NoDataState) err := fmt.Errorf("unsupported no data state: %s", rule.NoDataState)
state.SetError(err, state.StartsAt, nextEndsTime(rule.IntervalSeconds, result.EvaluatedAt)) state.SetError(err, state.StartsAt, nextEndsTime(rule.IntervalSeconds, result.EvaluatedAt))