diff --git a/server/lease/lessor.go b/server/lease/lessor.go index cf2028933..387bafb91 100644 --- a/server/lease/lessor.go +++ b/server/lease/lessor.go @@ -313,6 +313,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} @@ -361,6 +362,7 @@ func (le *lessor) Revoke(id LeaseID) error { txn.End() leaseRevoked.Inc() + leaseActive.Dec() return nil } @@ -822,6 +824,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 06f8b5801..d6e46deb2 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) }