diff --git a/prometheus.go b/prometheus.go index 76ef540..62eb1ea 100644 --- a/prometheus.go +++ b/prometheus.go @@ -53,4 +53,12 @@ var ( 4.096, 8.192, 13.192, 18.192, 23.192, 28.192, 33.192, }, }) + + scanRenewers = promauto.NewGauge(prometheus.GaugeOpts{ + Namespace: "gohbase", + Subsystem: "scanner", + Name: "renewer_count", + Help: "Number of active scanner renewers. " + + "A continually increasing value indicates an Scanner leak.", + }) ) diff --git a/scanner.go b/scanner.go index defcbbd..d1c445b 100644 --- a/scanner.go +++ b/scanner.go @@ -401,8 +401,12 @@ func (s *scanner) renew(ctx context.Context, startRow []byte) error { } func (s *scanner) renewLoop(ctx context.Context, startRow []byte) { + scanRenewers.Inc() t := time.NewTicker(s.rpc.RenewInterval()) - defer t.Stop() + defer func() { + t.Stop() + scanRenewers.Dec() + }() for { select {