diff --git a/lib/gat/pool/pool.go b/lib/gat/pool/pool.go index f5223b2d72bbe8f1065700846d6650a1621a7c3d..3bf2462395acf89065633892ad57d57e3baa087e 100644 --- a/lib/gat/pool/pool.go +++ b/lib/gat/pool/pool.go @@ -146,7 +146,25 @@ func (T *Pool) removeRecipe(name string) { } } +var ( + numStarted atomic.Int64 + numSuccessful atomic.Int64 + numCancelled atomic.Int64 + numFailed atomic.Int64 +) + +func init() { + go func() { + for { + time.Sleep(1 * time.Second) + log.Printf("%d started, %d successful, %d cancelled, %d failed", numStarted.Load(), numSuccessful.Load(), numCancelled.Load(), numFailed.Load()) + } + }() +} + func (T *Pool) scaleUp() { + numStarted.Add(1) + backoff := T.options.ServerReconnectInitialTime backingOff := false @@ -159,12 +177,14 @@ func (T *Pool) scaleUp() { for { select { case <-T.closed: + numCancelled.Add(1) return default: } if !backingOff && T.backingOff.Load() { // already in backoff + numCancelled.Add(1) return } @@ -188,6 +208,7 @@ func (T *Pool) scaleUp() { if r != nil { err := T.scaleUpL1(name, r) if err == nil { + numSuccessful.Add(1) return } @@ -196,11 +217,13 @@ func (T *Pool) scaleUp() { if backoff == 0 { // no backoff + numFailed.Add(1) return } if !backingOff { if T.backingOff.Swap(true) { + numCancelled.Add(1) return } backingOff = true diff --git a/pggat.Dockerfile b/pggat.Dockerfile index 93870c210cff68094cede68f19cf5fcf82333265..3bbdb9886d1d14d95c128a29667e7de11b618691 100644 --- a/pggat.Dockerfile +++ b/pggat.Dockerfile @@ -5,7 +5,7 @@ WORKDIR /src COPY . . RUN go mod tidy -RUN go build -race -o cgat ./cmd/cgat +RUN go build -o cgat ./cmd/cgat FROM alpine:latest WORKDIR /bin