From 87546bb58d32040887fbe42054ad61a258b6397b Mon Sep 17 00:00:00 2001
From: Garet Halliday <me@garet.holiday>
Date: Thu, 14 Sep 2023 20:23:16 -0500
Subject: [PATCH] log metrics every minute in discovery mode

---
 lib/gat/modes/zalando_operator_discovery/server.go | 12 ++++++++++++
 pgbouncer.ini                                      |  2 +-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/gat/modes/zalando_operator_discovery/server.go b/lib/gat/modes/zalando_operator_discovery/server.go
index 77ba3794..7153483a 100644
--- a/lib/gat/modes/zalando_operator_discovery/server.go
+++ b/lib/gat/modes/zalando_operator_discovery/server.go
@@ -5,6 +5,7 @@ import (
 	"crypto/tls"
 	"fmt"
 	"strings"
+	"time"
 
 	acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do"
 	acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
@@ -22,6 +23,7 @@ import (
 	"pggat/lib/bouncer/backends/v0"
 	"pggat/lib/bouncer/frontends/v0"
 	"pggat/lib/gat"
+	"pggat/lib/gat/metrics"
 	"pggat/lib/gat/pool"
 	"pggat/lib/gat/pool/dialer"
 	"pggat/lib/gat/pool/pools/session"
@@ -266,6 +268,16 @@ func (T *Server) deletePostgresql(psql *acidv1.Postgresql) {
 }
 
 func (T *Server) ListenAndServe() error {
+	go func() {
+		var m metrics.Pools
+		for {
+			m.Clear()
+			time.Sleep(1 * time.Minute)
+			T.pools.ReadMetrics(&m)
+			log.Print(m.String())
+		}
+	}()
+
 	var bank flip.Bank
 
 	bank.Queue(func() error {
diff --git a/pgbouncer.ini b/pgbouncer.ini
index f88533fa..428dbd8b 100644
--- a/pgbouncer.ini
+++ b/pgbouncer.ini
@@ -1,5 +1,5 @@
 [pgbouncer]
-pool_mode = session
+pool_mode = transaction
 auth_file = userlist.txt
 listen_addr = *
 track_extra_parameters = IntervalStyle, session_authorization, default_transaction_read_only, search_path
-- 
GitLab