46 lines
753 B
Go
46 lines
753 B
Go
package main
|
|
|
|
import "sync"
|
|
|
|
var (
|
|
spotsReceived int64
|
|
spotsProcessed int64
|
|
spotsRejected int64
|
|
spotsMutex sync.RWMutex
|
|
)
|
|
|
|
func IncrementSpotsReceived() {
|
|
spotsMutex.Lock()
|
|
spotsReceived++
|
|
spotsMutex.Unlock()
|
|
}
|
|
|
|
func IncrementSpotsProcessed() {
|
|
spotsMutex.Lock()
|
|
spotsProcessed++
|
|
spotsMutex.Unlock()
|
|
}
|
|
|
|
func IncrementSpotsRejected() {
|
|
spotsMutex.Lock()
|
|
spotsRejected++
|
|
spotsMutex.Unlock()
|
|
}
|
|
|
|
func GetSpotStats() (int64, int64, int64) {
|
|
spotsMutex.RLock()
|
|
defer spotsMutex.RUnlock()
|
|
return spotsReceived, spotsProcessed, spotsRejected
|
|
}
|
|
|
|
func GetSpotSuccessRate() float64 {
|
|
spotsMutex.RLock()
|
|
defer spotsMutex.RUnlock()
|
|
|
|
if spotsReceived == 0 {
|
|
return 0.0
|
|
}
|
|
|
|
return float64(spotsProcessed) / float64(spotsReceived) * 100.0
|
|
}
|