Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Tracker ¶
type Tracker struct {
// contains filtered or unexported fields
}
Tracker aggregates IO throughput metrics from multiple concurrent goroutines. Create one per operation (push/pull/fetch) and pass it to each goroutine so they share the same atomic counters.
func NewTracker ¶
NewTracker creates a new Tracker and records the start time. Call this before launching the errgroup.
func (*Tracker) Summary ¶
func (t *Tracker) Summary()
Summary outputs a throughput summary to both the log file (logrus) and the terminal (stderr). Call this after all goroutines have completed (after g.Wait()) — the happens-before from errgroup guarantees all atomic stores are visible.
func (*Tracker) TrackTransfer ¶
TrackTransfer measures the wall-clock duration of a single transfer (one goroutine handling one blob) and accumulates it. Place this inside retry.Do so each retry attempt is measured independently.