Files
Zern-BlackOut/go_client/stats.go
T
2026-05-23 22:18:08 +03:00

39 lines
739 B
Go

package main
import (
"log"
"sync/atomic"
"time"
)
type Stats struct {
ActiveConnections int32
Reconnects int64
TotalBytesUp int64
TotalBytesDown int64
CredsErrors int64
}
func NewStats() *Stats {
return &Stats{}
}
func (s *Stats) RunLoop(shutdown <-chan struct{}) {
ticker := time.NewTicker(3 * time.Second)
defer ticker.Stop()
for {
select {
case <-shutdown:
return
case <-ticker.C:
active := atomic.LoadInt32(&s.ActiveConnections)
up := atomic.LoadInt64(&s.TotalBytesUp)
down := atomic.LoadInt64(&s.TotalBytesDown)
totalMB := float64(up+down) / (1024.0 * 1024.0)
log.Printf("[СТАТИСТИКА] Активных: %d | Трафик: %.2f МБ", active, totalMB)
}
}
}