ax(mining): replace prose comments with usage examples in metrics.go
All 12 exported functions in metrics.go had comments that restated their signatures in prose (e.g. "records a miner start event") instead of showing concrete call examples. Replaced with AX-compliant usage examples per RFC-025 principle 2 (Comments as Usage Examples). Co-Authored-By: Charon <charon@lethean.io>
This commit is contained in:
parent
725960d915
commit
1ebe43fd55
1 changed files with 18 additions and 12 deletions
|
|
@ -41,7 +41,7 @@ type LatencyHistogram struct {
|
|||
maxSize int
|
||||
}
|
||||
|
||||
// NewLatencyHistogram creates a new latency histogram with a maximum sample size.
|
||||
// h := mining.NewLatencyHistogram(1000) // retain up to 1000 latency samples
|
||||
func NewLatencyHistogram(maxSize int) *LatencyHistogram {
|
||||
return &LatencyHistogram{
|
||||
samples: make([]time.Duration, 0, maxSize),
|
||||
|
|
@ -62,7 +62,7 @@ func (h *LatencyHistogram) Record(d time.Duration) {
|
|||
h.samples = append(h.samples, d)
|
||||
}
|
||||
|
||||
// Average returns the average latency.
|
||||
// avg := h.Average() // returns 0 if no samples recorded
|
||||
func (h *LatencyHistogram) Average() time.Duration {
|
||||
h.mu.Lock()
|
||||
defer h.mu.Unlock()
|
||||
|
|
@ -78,7 +78,7 @@ func (h *LatencyHistogram) Average() time.Duration {
|
|||
return total / time.Duration(len(h.samples))
|
||||
}
|
||||
|
||||
// Count returns the number of samples.
|
||||
// if h.Count() == 0 { return } // guard before calling Average()
|
||||
func (h *LatencyHistogram) Count() int {
|
||||
h.mu.Lock()
|
||||
defer h.mu.Unlock()
|
||||
|
|
@ -90,7 +90,8 @@ var DefaultMetrics = &Metrics{
|
|||
RequestLatency: NewLatencyHistogram(1000),
|
||||
}
|
||||
|
||||
// RecordRequest records an API request.
|
||||
// RecordRequest(true, 42*time.Millisecond) // errored request
|
||||
// RecordRequest(false, 5*time.Millisecond) // successful request
|
||||
func RecordRequest(errored bool, latency time.Duration) {
|
||||
DefaultMetrics.RequestsTotal.Add(1)
|
||||
if errored {
|
||||
|
|
@ -99,22 +100,24 @@ func RecordRequest(errored bool, latency time.Duration) {
|
|||
DefaultMetrics.RequestLatency.Record(latency)
|
||||
}
|
||||
|
||||
// RecordMinerStart records a miner start event.
|
||||
// RecordMinerStart() // call after miner.Start() succeeds
|
||||
func RecordMinerStart() {
|
||||
DefaultMetrics.MinersStarted.Add(1)
|
||||
}
|
||||
|
||||
// RecordMinerStop records a miner stop event.
|
||||
// RecordMinerStop() // call after miner.Stop() completes
|
||||
func RecordMinerStop() {
|
||||
DefaultMetrics.MinersStopped.Add(1)
|
||||
}
|
||||
|
||||
// RecordMinerError records a miner error event.
|
||||
// RecordMinerError() // call when a miner crashes or fails to respond
|
||||
func RecordMinerError() {
|
||||
DefaultMetrics.MinersErrored.Add(1)
|
||||
}
|
||||
|
||||
// RecordStatsCollection records a stats collection event.
|
||||
// RecordStatsCollection(false, false) // successful first-attempt collection
|
||||
// RecordStatsCollection(true, false) // succeeded after retry
|
||||
// RecordStatsCollection(true, true) // failed after retry
|
||||
func RecordStatsCollection(retried bool, failed bool) {
|
||||
DefaultMetrics.StatsCollected.Add(1)
|
||||
if retried {
|
||||
|
|
@ -125,7 +128,8 @@ func RecordStatsCollection(retried bool, failed bool) {
|
|||
}
|
||||
}
|
||||
|
||||
// RecordWSConnection increments or decrements WebSocket connection count.
|
||||
// RecordWSConnection(true) // client connected
|
||||
// RecordWSConnection(false) // client disconnected
|
||||
func RecordWSConnection(connected bool) {
|
||||
if connected {
|
||||
DefaultMetrics.WSConnections.Add(1)
|
||||
|
|
@ -134,12 +138,13 @@ func RecordWSConnection(connected bool) {
|
|||
}
|
||||
}
|
||||
|
||||
// RecordWSMessage records a WebSocket message.
|
||||
// RecordWSMessage() // call after broadcasting an event to clients
|
||||
func RecordWSMessage() {
|
||||
DefaultMetrics.WSMessages.Add(1)
|
||||
}
|
||||
|
||||
// RecordP2PMessage records a P2P message.
|
||||
// RecordP2PMessage(true) // outbound message dispatched
|
||||
// RecordP2PMessage(false) // inbound message received
|
||||
func RecordP2PMessage(sent bool) {
|
||||
if sent {
|
||||
DefaultMetrics.P2PMessagesSent.Add(1)
|
||||
|
|
@ -148,7 +153,8 @@ func RecordP2PMessage(sent bool) {
|
|||
}
|
||||
}
|
||||
|
||||
// GetMetricsSnapshot returns a snapshot of current metrics.
|
||||
// snapshot := mining.GetMetricsSnapshot()
|
||||
// snapshot["requests_total"].(int64)
|
||||
func GetMetricsSnapshot() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"requests_total": DefaultMetrics.RequestsTotal.Load(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue