diff options
Diffstat (limited to 'server/stats.go')
| -rw-r--r-- | server/stats.go | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/server/stats.go b/server/stats.go deleted file mode 100644 index 01aa121..0000000 --- a/server/stats.go +++ /dev/null @@ -1,88 +0,0 @@ -package server - -import ( - "dtail/config" - "dtail/logger" - "fmt" - "runtime" - "sync" - "time" -) - -// Used to collect and display various server stats. -type stats struct { - mutex sync.Mutex - currentConnections int - lifetimeConnections uint64 -} - -func (s *stats) incrementConnections() { - defer s.logServerStats() - - s.mutex.Lock() - s.currentConnections++ - s.lifetimeConnections++ - s.mutex.Unlock() -} - -func (s *stats) decrementConnections() { - defer s.logServerStats() - - s.mutex.Lock() - s.currentConnections-- - s.mutex.Unlock() -} - -func (s *stats) hasConnections() bool { - s.mutex.Lock() - currentConnections := s.currentConnections - s.mutex.Unlock() - - has := currentConnections > 0 - logger.Info("stats", "Server with open connections?", has, currentConnections) - - return has -} - -func (s *stats) logServerStats() { - s.mutex.Lock() - defer s.mutex.Unlock() - - currentConnections := fmt.Sprintf("currentConnections=%d", s.currentConnections) - lifetimeConnections := fmt.Sprintf("lifetimeConnections=%d", s.lifetimeConnections) - goroutines := fmt.Sprintf("goroutines=%d", runtime.NumGoroutine()) - logger.Info("stats", currentConnections, lifetimeConnections, goroutines) -} - -func (s *stats) serverLimitExceeded() error { - s.mutex.Lock() - defer s.mutex.Unlock() - - if s.currentConnections >= config.Server.MaxConnections { - return fmt.Errorf("Exceeded max allowed concurrent connections of %d", config.Server.MaxConnections) - } - - return nil -} - -func (s *stats) periodicLogServerStats(stop <-chan struct{}) { - for { - select { - case <-time.NewTimer(time.Second * 10).C: - s.logServerStats() - case <-stop: - return - } - } -} - -func (s *stats) waitForConnections() { - for { - select { - case <-time.NewTimer(time.Second).C: - if !s.hasConnections() { - return - } - } - } -} |
