Merge pull request #18523 from roidelapluie/roidelapluie/smoothed-rate

promql: fix smoothed rate returning zero for data only after range
This commit is contained in:
Julien 2026-04-16 10:00:46 +02:00 committed by GitHub
commit c4c1c55a82
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 1 deletions

View File

@ -142,6 +142,9 @@ func extendedRate(vals Matrix, args parser.Expressions, enh *EvalNodeHelper, isC
if f[lastSampleIndex].T <= rangeStart {
return enh.Out, annos
}
if smoothed && f[firstSampleIndex].T > rangeEnd {
return enh.Out, annos
}
left := pickOrInterpolateLeft(f, firstSampleIndex, rangeStart, smoothed, isCounter)
right := pickOrInterpolateRight(f, lastSampleIndex, rangeEnd, smoothed, isCounter)

View File

@ -417,4 +417,20 @@ eval instant at 45s withreset smoothed
withreset 3
eval instant at 30s notregular smoothed
notregular 2
notregular 2
# Smoothed rate returns empty when data is only before or only after the range.
clear
load 10s
metric _ 5+1x4
eval instant at 5s rate(metric[5s] smoothed)
eval instant at 5s increase(metric[5s] smoothed)
eval instant at 15s increase(metric[10s] smoothed)
{} 0.5
eval instant at 60s rate(metric[5s] smoothed)
eval instant at 60s increase(metric[5s] smoothed)