Alerting: Update state manager to change all current states in the case when Error\NoData is executed as Ok\Nomal (#68142)

This commit is contained in:
Yuri Tseretyan
2023-08-15 10:27:15 -04:00
committed by GitHub
parent 2848be9035
commit 0717ec11d6
8 changed files with 804 additions and 38 deletions
+21
View File
@@ -142,6 +142,7 @@ type ExecutionResults struct {
// Results is a slice of evaluated alert instances states.
type Results []Result
// HasErrors returns true when Results contains at least one element with error
func (evalResults Results) HasErrors() bool {
for _, r := range evalResults {
if r.State == Error {
@@ -151,6 +152,26 @@ func (evalResults Results) HasErrors() bool {
return false
}
// HasErrors returns true when Results contains at least one element and all elements are errors
func (evalResults Results) IsError() bool {
for _, r := range evalResults {
if r.State != Error {
return false
}
}
return len(evalResults) > 0
}
// IsNoData returns true when all items are NoData or Results is empty
func (evalResults Results) IsNoData() bool {
for _, result := range evalResults {
if result.State != NoData {
return false
}
}
return true
}
// Result contains the evaluated State of an alert instance
// identified by its labels.
type Result struct {