Skip to content

Commit 088af3b

Browse files
committed
Protect against divide by zero
1 parent 417e08a commit 088af3b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

sqsadaptor/aggregation.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,17 @@ func addResult(data *AggData, result *AggData) {
3232
data.TotalTimedOut += result.TotalTimedOut
3333
dataTot64 := int64(data.TotalReqs)
3434
resultTot64 := int64(result.TotalReqs)
35-
data.AveTimeToFirst = (data.AveTimeToFirst*initialDataTot64 + result.AveTimeToFirst*resultTot64) / dataTot64
35+
if dataTot64 > 0 {
36+
data.AveTimeToFirst = (data.AveTimeToFirst*initialDataTot64 + result.AveTimeToFirst*resultTot64) / dataTot64
37+
data.AveTimeForReq = (data.AveTimeForReq*initialDataTot64 + result.AveTimeForReq*resultTot64) / dataTot64
38+
data.AveReqPerSec = (data.AveReqPerSec*float32(initialDataTot) + result.AveReqPerSec*float32(result.TotalReqs)) / float32(data.TotalReqs)
39+
}
3640
data.TotBytesRead += result.TotBytesRead
3741

3842
for key, value := range result.Statuses {
3943
data.Statuses[key] += value
4044
}
41-
data.AveTimeForReq = (data.AveTimeForReq*initialDataTot64 + result.AveTimeForReq*resultTot64) / dataTot64
42-
data.AveReqPerSec = (data.AveReqPerSec*float32(initialDataTot) + result.AveReqPerSec*float32(result.TotalReqs)) / float32(data.TotalReqs)
45+
4346
if result.Slowest > data.Slowest {
4447
data.Slowest = result.Slowest
4548
}

0 commit comments

Comments
 (0)