good morning!!!!

Skip to content
Snippets Groups Projects
Commit 11f7a37b authored by Garet Halliday's avatar Garet Halliday
Browse files

logger loop

parent 14217a0f
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"io" "io"
"net" "net"
"time"
"github.com/caddyserver/caddy/v2" "github.com/caddyserver/caddy/v2"
"go.uber.org/zap" "go.uber.org/zap"
...@@ -13,6 +14,7 @@ import ( ...@@ -13,6 +14,7 @@ import (
"gfx.cafe/gfx/pggat/lib/bouncer/frontends/v0" "gfx.cafe/gfx/pggat/lib/bouncer/frontends/v0"
"gfx.cafe/gfx/pggat/lib/fed" "gfx.cafe/gfx/pggat/lib/fed"
packets "gfx.cafe/gfx/pggat/lib/fed/packets/v3.0" packets "gfx.cafe/gfx/pggat/lib/fed/packets/v3.0"
"gfx.cafe/gfx/pggat/lib/gat/metrics"
"gfx.cafe/gfx/pggat/lib/middleware/interceptor" "gfx.cafe/gfx/pggat/lib/middleware/interceptor"
"gfx.cafe/gfx/pggat/lib/middleware/middlewares/unterminate" "gfx.cafe/gfx/pggat/lib/middleware/middlewares/unterminate"
"gfx.cafe/gfx/pggat/lib/perror" "gfx.cafe/gfx/pggat/lib/perror"
...@@ -39,6 +41,8 @@ type App struct { ...@@ -39,6 +41,8 @@ type App struct {
keys maps.RWLocked[[8]byte, *Pool] keys maps.RWLocked[[8]byte, *Pool]
closed chan struct{}
log *zap.Logger log *zap.Logger
} }
...@@ -183,7 +187,33 @@ func (T *App) acceptFrom(listener *Listener) bool { ...@@ -183,7 +187,33 @@ func (T *App) acceptFrom(listener *Listener) bool {
return true return true
} }
func (T *App) statLogLoop() {
t := time.NewTicker(T.StatLogPeriod.Duration())
defer t.Stop()
var stats metrics.Server
for {
select {
case <-t.C:
for _, server := range T.servers {
for _, route := range server.routes {
route.provide.ReadMetrics(&stats.Pools)
}
}
T.log.Info(stats.String())
stats.Clear()
case <-T.closed:
return
}
}
}
func (T *App) Start() error { func (T *App) Start() error {
T.closed = make(chan struct{})
if T.StatLogPeriod != 0 {
go T.statLogLoop()
}
// start listeners // start listeners
for _, listener := range T.listen { for _, listener := range T.listen {
if err := listener.Start(); err != nil { if err := listener.Start(); err != nil {
...@@ -203,6 +233,8 @@ func (T *App) Start() error { ...@@ -203,6 +233,8 @@ func (T *App) Start() error {
} }
func (T *App) Stop() error { func (T *App) Stop() error {
close(T.closed)
// stop listeners // stop listeners
for _, listener := range T.listen { for _, listener := range T.listen {
if err := listener.Stop(); err != nil { if err := listener.Stop(); err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment