diff options
| author | Paul Buetow <35781042+pbuetow@users.noreply.github.com> | 2020-12-27 19:46:24 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-27 19:46:24 +0000 |
| commit | 495e9f38220a6d448b15882a235e7a9c21f21d18 (patch) | |
| tree | 5b59cade83108c1855d07f1f869a0dcb3b9f0907 /internal/clients/stats.go | |
| parent | b4db37d8cbae8f0c3dec289b2e1b0cfe83731415 (diff) | |
| parent | 2c7bdd09e8b7c58d98d631e32a24e4bd34d5bec9 (diff) | |
Merge pull request #16 from snonux/develop
Multiple minor enhancements.
Diffstat (limited to 'internal/clients/stats.go')
| -rw-r--r-- | internal/clients/stats.go | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/internal/clients/stats.go b/internal/clients/stats.go index 17343b5..d8163d4 100644 --- a/internal/clients/stats.go +++ b/internal/clients/stats.go @@ -34,7 +34,7 @@ func newTailStats(connectionsTotal int) *stats { // Start starts printing client connection stats every time a signal is recieved or // connection count has changed. -func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh <-chan string) { +func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh <-chan string, quiet bool) { var connectedLast int for { @@ -45,7 +45,7 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < case message := <-statsCh: messages = append(messages, message) force = true - case <-time.After(time.Second * 10): + case <-time.After(time.Second * 3): case <-ctx.Done(): return } @@ -55,7 +55,7 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < newConnections := connected - connectedLast - if connected == connectedLast && !force { + if (connected == connectedLast || quiet) && !force { continue } @@ -63,7 +63,7 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < switch force { case true: messages = append(messages, fmt.Sprintf("Connection stats: %s", stats)) - s.printStatsOnInterrupt(messages) + s.printStatsDueInterrupt(messages) default: logger.Info(stats) } @@ -75,7 +75,7 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < } } -func (s *stats) printStatsOnInterrupt(messages []string) { +func (s *stats) printStatsDueInterrupt(messages []string) { logger.Pause() for _, message := range messages { fmt.Println(fmt.Sprintf(" %s", message)) @@ -107,5 +107,6 @@ func percentOf(total float64, value float64) float64 { if total == 0 || total == value { return 100 } + return value / (total / 100.0) } |
