ax(mining): replace prose comments with usage examples in metrics.go
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run

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:
Claude 2026-04-02 07:45:40 +01:00
parent 725960d915
commit 1ebe43fd55
No known key found for this signature in database
GPG key ID: AF404715446AEB41

View file

@ -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(),