From eb6c3ec014e2673877c6f56d0c7c3c173ff12334 Mon Sep 17 00:00:00 2001 From: Levente Pap <levente.pap@iota.org> Date: Wed, 15 Jul 2020 17:52:17 +0200 Subject: [PATCH] Fix avgSolidificationTime calc --- packages/binary/messagelayer/tangle/tangle.go | 4 +++- plugins/metrics/message.go | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go index 5935619c..66dc3aff 100644 --- a/packages/binary/messagelayer/tangle/tangle.go +++ b/packages/binary/messagelayer/tangle/tangle.go @@ -159,7 +159,9 @@ func (tangle *Tangle) DBStats() (solidCount int, messageCount int, avgSolidifica }) return true }) - avgSolidificationTime = float64(sumSolidificationTime.Milliseconds()) / float64(solidCount) + if solidCount > 0 { + avgSolidificationTime = float64(sumSolidificationTime.Milliseconds()) / float64(solidCount) + } // TODO: get rid of console printing fmt.Println("solid", solidCount, "message", messageCount, "iterations", iterations) return diff --git a/plugins/metrics/message.go b/plugins/metrics/message.go index 4737eca7..a552571d 100644 --- a/plugins/metrics/message.go +++ b/plugins/metrics/message.go @@ -96,10 +96,14 @@ func MessageTotalCountDB() uint64 { } // AvgSolidificationTime returns the average time it takes for a message to become solid. [milliseconds] -func AvgSolidificationTime() float64 { +func AvgSolidificationTime() (result float64) { solidTimeMutex.RLock() defer solidTimeMutex.RUnlock() - return (initialSumSolidificationTime + float64(sumSolidificationTime.Milliseconds())) / float64(MessageSolidCountDB()) + totalSolid := MessageSolidCountDB() + if totalSolid > 0 { + result = (initialSumSolidificationTime + float64(sumSolidificationTime.Milliseconds())) / float64(totalSolid) + } + return } // ReceivedMessagesPerSecond retrieves the current messages per second number. -- GitLab