Speed delta value without loop to calculate resultValue
Signed-off-by: songjiayang <songjiayang1@gmail.com>
This commit is contained in:
parent
8c8de46003
commit
776c2b8f42
|
@ -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
|
||||
)
|
||||
for _, sample := range samples.Points {
|
||||
if isCounter && sample.V < lastValue {
|
||||
counterCorrection += lastValue
|
||||
|
||||
resultValue := samples.Points[len(samples.Points)-1].V - samples.Points[0].V
|
||||
if isCounter {
|
||||
var lastValue float64
|
||||
for _, sample := range samples.Points {
|
||||
if sample.V < lastValue {
|
||||
resultValue += lastValue
|
||||
}
|
||||
lastValue = sample.V
|
||||
}
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue