Don't create a new iterator for every time step.

Signed-off-by: Charles Korn <charles.korn@grafana.com>
pull/12579/head
Charles Korn 1 year ago
parent b114c0888d
commit 993618adea
No known key found for this signature in database

@ -1830,6 +1830,7 @@ func (ev *evaluator) evalTimestampFunctionOverVectorSelector(vs *parser.VectorSe
if err != nil { if err != nil {
ev.error(errWithWarnings{fmt.Errorf("expanding series: %w", err), ws}) ev.error(errWithWarnings{fmt.Errorf("expanding series: %w", err), ws})
} }
it := storage.NewMemoizedEmptyIterator(durationMilliseconds(ev.lookbackDelta))
return ev.rangeEval(nil, func(v []parser.Value, _ [][]EvalSeriesHelper, enh *EvalNodeHelper) (Vector, storage.Warnings) { return ev.rangeEval(nil, func(v []parser.Value, _ [][]EvalSeriesHelper, enh *EvalNodeHelper) (Vector, storage.Warnings) {
if vs.Timestamp != nil { if vs.Timestamp != nil {
@ -1838,7 +1839,6 @@ func (ev *evaluator) evalTimestampFunctionOverVectorSelector(vs *parser.VectorSe
vs.Offset = time.Duration(enh.Ts-*vs.Timestamp) * time.Millisecond vs.Offset = time.Duration(enh.Ts-*vs.Timestamp) * time.Millisecond
} }
vec := make(Vector, 0, len(vs.Series)) vec := make(Vector, 0, len(vs.Series))
it := storage.NewMemoizedEmptyIterator(durationMilliseconds(ev.lookbackDelta))
var chkIter chunkenc.Iterator var chkIter chunkenc.Iterator
for _, s := range vs.Series { for _, s := range vs.Series {
chkIter = s.Iterator(chkIter) chkIter = s.Iterator(chkIter)

Loading…
Cancel
Save