rules: Consider ErrTooOldSample in expected errors
@@ -649,6 +649,7 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
}
var (
numOutOfOrder = 0
+ numTooOld = 0
numDuplicates = 0
)
@@ -680,6 +681,9 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
case errors.Is(unwrappedErr, storage.ErrOutOfOrderSample):
numOutOfOrder++
level.Debug(g.logger).Log("name", rule.Name(), "index", i, "msg", "Rule evaluation result discarded", "err", err, "sample", s)
+ case errors.Is(unwrappedErr, storage.ErrTooOldSample):
+ numTooOld++
+ level.Debug(g.logger).Log("name", rule.Name(), "index", i, "msg", "Rule evaluation result discarded", "err", err, "sample", s)
case errors.Is(unwrappedErr, storage.ErrDuplicateSampleForTimestamp):
numDuplicates++
level.Debug(g.logger).Log("name", rule.Name(), "index", i, "msg", "Rule evaluation result discarded", "err", err, "sample", s)
@@ -694,6 +698,9 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
if numOutOfOrder > 0 {
level.Warn(g.logger).Log("name", rule.Name(), "index", i, "msg", "Error on ingesting out-of-order result from rule evaluation", "numDropped", numOutOfOrder)
}
+ if numTooOld > 0 {
+ level.Warn(g.logger).Log("name", rule.Name(), "index", i, "msg", "Error on ingesting too old result from rule evaluation", "numDropped", numTooOld)
+ }
if numDuplicates > 0 {
level.Warn(g.logger).Log("name", rule.Name(), "index", i, "msg", "Error on ingesting results from rule evaluation with different value but same timestamp", "numDropped", numDuplicates)
}
@@ -708,7 +715,9 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
}
switch {
case unwrappedErr == nil:
- case errors.Is(unwrappedErr, storage.ErrOutOfOrderSample), errors.Is(unwrappedErr, storage.ErrDuplicateSampleForTimestamp):
+ case errors.Is(unwrappedErr, storage.ErrOutOfOrderSample),
+ errors.Is(unwrappedErr, storage.ErrTooOldSample),
+ errors.Is(unwrappedErr, storage.ErrDuplicateSampleForTimestamp):
// Do not count these in logging, as this is expected if series
// is exposed from a different rule.
default:
@@ -738,7 +747,9 @@ func (g *Group) cleanupStaleSeries(ctx context.Context, ts time.Time) {
}
switch {
case unwrappedErr == nil:
- case errors.Is(unwrappedErr, storage.ErrOutOfOrderSample), errors.Is(unwrappedErr, storage.ErrDuplicateSampleForTimestamp):
+ case errors.Is(unwrappedErr, storage.ErrOutOfOrderSample),
+ errors.Is(unwrappedErr, storage.ErrTooOldSample),
+ errors.Is(unwrappedErr, storage.ErrDuplicateSampleForTimestamp):
// Do not count these in logging, as this is expected if series
// is exposed from a different rule.
default:
