Merge pull request #9231 from LeviHarrison/remove-unneeded-sets

Remove unneeded rule state modifications
This commit is contained in:
Julien Pivotto 2021-08-25 12:15:07 +02:00 committed by GitHub
commit 235e4f351b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 18 deletions

View File

@ -300,8 +300,6 @@ const resolvedRetention = 15 * time.Minute
func (r *AlertingRule) Eval(ctx context.Context, ts time.Time, query QueryFunc, externalURL *url.URL) (promql.Vector, error) {
res, err := query(ctx, r.vector.String(), ts)
if err != nil {
r.SetHealth(HealthBad)
r.SetLastError(err)
return nil, err
}
@ -366,12 +364,7 @@ func (r *AlertingRule) Eval(ctx context.Context, ts time.Time, query QueryFunc,
resultFPs[h] = struct{}{}
if _, ok := alerts[h]; ok {
err = fmt.Errorf("vector contains metrics with the same labelset after applying alert labels")
// We have already acquired the lock above hence using SetHealth and
// SetLastError will deadlock.
r.health = HealthBad
r.lastError = err
return nil, err
return nil, fmt.Errorf("vector contains metrics with the same labelset after applying alert labels")
}
alerts[h] = &Alert{
@ -421,10 +414,6 @@ func (r *AlertingRule) Eval(ctx context.Context, ts time.Time, query QueryFunc,
}
}
// We have already acquired the lock above hence using SetHealth and
// SetLastError will deadlock.
r.health = HealthGood
r.lastError = err
return vec, nil
}

View File

@ -604,6 +604,8 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
}
return
}
rule.SetHealth(HealthGood)
rule.SetLastError(nil)
samplesTotal += float64(len(vector))
if ar, ok := rule.(*AlertingRule); ok {

View File

@ -96,14 +96,9 @@ func (rule *RecordingRule) Eval(ctx context.Context, ts time.Time, query QueryFu
// Check that the rule does not produce identical metrics after applying
// labels.
if vector.ContainsSameLabelset() {
err = fmt.Errorf("vector contains metrics with the same labelset after applying rule labels")
rule.SetHealth(HealthBad)
rule.SetLastError(err)
return nil, err
return nil, fmt.Errorf("vector contains metrics with the same labelset after applying rule labels")
}
rule.SetHealth(HealthGood)
rule.SetLastError(err)
return vector, nil
}