Files
RocketLeagueBot-Renderer/internal/stats/stats.go
T
fdestefano d5e65fbb03
release / goreleaser (push) Failing after 51s
Release v1.0.0 #major
2026-06-02 23:12:36 -05:00

24 lines
677 B
Go

// Package stats holds process-wide observability counters shared across packages.
package stats
import (
"sync/atomic"
"time"
)
// Stats are process-wide atomic counters. A single global instance is used so
// any package can record events without dependency injection plumbing.
type Stats struct {
StartTime time.Time
UDPPackets atomic.Int64
UDPBytes atomic.Int64
FramesWritten atomic.Int64
FramesDropped atomic.Int64
BytesBeforeCompr atomic.Int64
BytesAfterCompr atomic.Int64
LastUDPPacketUnix atomic.Int64 // unix nanos; 0 = never
}
// Global is the singleton used by all packages.
var Global = &Stats{StartTime: time.Now()}