Speed delta value without loop to calculate resultValue
@@ -70,17 +70,17 @@ func extrapolatedRate(vals []parser.Value, args parser.Expressions, enh *EvalNod
if len(samples.Points) < 2 {
return enh.Out
}
- var (
- counterCorrection float64
- lastValue float64
- )
+
+ resultValue := samples.Points[len(samples.Points)-1].V - samples.Points[0].V
+ if isCounter {
+ var lastValue float64
for _, sample := range samples.Points {
- if isCounter && sample.V < lastValue {
- counterCorrection += lastValue
+ if sample.V < lastValue {
+ resultValue += lastValue
}
lastValue = sample.V
}
- resultValue := lastValue - samples.Points[0].V + counterCorrection
+ }
// Duration between first/last samples and boundary of range.
durationToStart := float64(samples.Points[0].T-rangeStart) / 1000
