diff --git a/server/lease/lessor.go b/server/lease/lessor.go index fc29b9b6663..b9a47da0b92 100644 --- a/server/lease/lessor.go +++ b/server/lease/lessor.go @@ -303,6 +303,7 @@ func (le *lessor) Grant(id LeaseID, ttl int64) (*Lease, error) { leaseTotalTTLs.Observe(float64(l.ttl)) leaseGranted.Inc() + leaseActive.Inc() if le.isPrimary() { item := &LeaseWithTime{id: l.ID, time: l.expiry} @@ -351,6 +352,7 @@ func (le *lessor) Revoke(id LeaseID) error { txn.End() leaseRevoked.Inc() + leaseActive.Dec() return nil } @@ -812,6 +814,7 @@ func (le *lessor) initAndRecover() { } le.leaseExpiredNotifier.Init() heap.Init(&le.leaseCheckpointHeap) + leaseActive.Set(float64(len(le.leaseMap))) le.b.ForceCommit() } diff --git a/server/lease/metrics.go b/server/lease/metrics.go index 06f8b58015f..d6e46deb21c 100644 --- a/server/lease/metrics.go +++ b/server/lease/metrics.go @@ -49,6 +49,13 @@ var ( // 1 second -> 3 months Buckets: prometheus.ExponentialBuckets(1, 2, 24), }) + + leaseActive = prometheus.NewGauge(prometheus.GaugeOpts{ + Namespace: "etcd_debugging", + Subsystem: "lease", + Name: "active", + Help: "The current number of active leases.", + }) ) func init() { @@ -56,4 +63,5 @@ func init() { prometheus.MustRegister(leaseRevoked) prometheus.MustRegister(leaseRenewed) prometheus.MustRegister(leaseTotalTTLs) + prometheus.MustRegister(leaseActive) }