From 4abadc82f3e06bca4f92022d4a2b2c1fd775e1e2 Mon Sep 17 00:00:00 2001 From: Wilmer Paulino Date: Fri, 7 Jun 2019 17:45:58 -0700 Subject: [PATCH] watchtower/wtclient: export clientStats --- watchtower/wtclient/client.go | 2 +- watchtower/wtclient/stats.go | 56 ++++++++++++++++++++++------------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/watchtower/wtclient/client.go b/watchtower/wtclient/client.go index abde9126..916e9165 100644 --- a/watchtower/wtclient/client.go +++ b/watchtower/wtclient/client.go @@ -161,7 +161,7 @@ type TowerClient struct { chanCommitHeights map[lnwire.ChannelID]uint64 statTicker *time.Ticker - stats clientStats + stats ClientStats wg sync.WaitGroup forceQuit chan struct{} diff --git a/watchtower/wtclient/stats.go b/watchtower/wtclient/stats.go index 069c1c97..b3812b70 100644 --- a/watchtower/wtclient/stats.go +++ b/watchtower/wtclient/stats.go @@ -2,50 +2,66 @@ package wtclient import "fmt" -type clientStats struct { - numTasksReceived int - numTasksAccepted int - numTasksIneligible int - numSessionsAcquired int - numSessionsExhausted int +// ClientStats is a collection of in-memory statistics of the actions the client +// has performed since its creation. +type ClientStats struct { + // NumTasksReceived is the total number of backups that are pending to + // be acknowledged by all active and exhausted watchtower sessions. + NumTasksReceived int + + // NumTasksAccepted is the total number of backups made to all active + // and exhausted watchtower sessions. + NumTasksAccepted int + + // NumTasksIneligible is the total number of backups that all active and + // exhausted watchtower sessions have failed to acknowledge. + NumTasksIneligible int + + // NumSessionsAcquired is the total number of new sessions made to + // watchtowers. + NumSessionsAcquired int + + // NumSessionsExhausted is the total number of watchtower sessions that + // have been exhausted. + NumSessionsExhausted int } // taskReceived increments the number to backup requests the client has received // from active channels. -func (s *clientStats) taskReceived() { - s.numTasksReceived++ +func (s *ClientStats) taskReceived() { + s.NumTasksReceived++ } // taskAccepted increments the number of tasks that have been assigned to active // session queues, and are awaiting upload to a tower. -func (s *clientStats) taskAccepted() { - s.numTasksAccepted++ +func (s *ClientStats) taskAccepted() { + s.NumTasksAccepted++ } // taskIneligible increments the number of tasks that were unable to satisfy the // active session queue's policy. These can potentially be retried later, but // typically this means that the balance created dust outputs, so it may not be // worth backing up at all. -func (s *clientStats) taskIneligible() { - s.numTasksIneligible++ +func (s *ClientStats) taskIneligible() { + s.NumTasksIneligible++ } // sessionAcquired increments the number of sessions that have been successfully // negotiated by the client during this execution. -func (s *clientStats) sessionAcquired() { - s.numSessionsAcquired++ +func (s *ClientStats) sessionAcquired() { + s.NumSessionsAcquired++ } // sessionExhausted increments the number of session that have become full as a // result of accepting backup tasks. -func (s *clientStats) sessionExhausted() { - s.numSessionsExhausted++ +func (s *ClientStats) sessionExhausted() { + s.NumSessionsExhausted++ } // String returns a human readable summary of the client's metrics. -func (s clientStats) String() string { +func (s ClientStats) String() string { return fmt.Sprintf("tasks(received=%d accepted=%d ineligible=%d) "+ - "sessions(acquired=%d exhausted=%d)", s.numTasksReceived, - s.numTasksAccepted, s.numTasksIneligible, s.numSessionsAcquired, - s.numSessionsExhausted) + "sessions(acquired=%d exhausted=%d)", s.NumTasksReceived, + s.NumTasksAccepted, s.NumTasksIneligible, s.NumSessionsAcquired, + s.NumSessionsExhausted) }