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
Tags v0.0.43
No related merge requests found
......@@ -6,6 +6,7 @@ import (
"fmt"
"io"
"net"
"time"
"github.com/caddyserver/caddy/v2"
"go.uber.org/zap"
......@@ -13,6 +14,7 @@ import (
"gfx.cafe/gfx/pggat/lib/bouncer/frontends/v0"
"gfx.cafe/gfx/pggat/lib/fed"
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/middlewares/unterminate"
"gfx.cafe/gfx/pggat/lib/perror"
......@@ -39,6 +41,8 @@ type App struct {
keys maps.RWLocked[[8]byte, *Pool]
closed chan struct{}
log *zap.Logger
}
......@@ -183,7 +187,33 @@ func (T *App) acceptFrom(listener *Listener) bool {
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 {
T.closed = make(chan struct{})
if T.StatLogPeriod != 0 {
go T.statLogLoop()
}
// start listeners
for _, listener := range T.listen {
if err := listener.Start(); err != nil {
......@@ -203,6 +233,8 @@ func (T *App) Start() error {
}
func (T *App) Stop() error {
close(T.closed)
// stop listeners
for _, listener := range T.listen {
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