Browse Source

storage: report total number of keys

Xiang Li 10 years ago
parent
commit
dd443be41b
2 changed files with 13 additions and 1 deletions
  1. 4 1
      storage/key_index.go
  2. 9 0
      storage/metrics.go

+ 4 - 1
storage/key_index.go

@@ -70,7 +70,8 @@ func (ki *keyIndex) put(main int64, sub int64) {
 		ki.generations = append(ki.generations, generation{})
 	}
 	g := &ki.generations[len(ki.generations)-1]
-	if len(g.revs) == 0 {
+	if len(g.revs) == 0 { // create a new key
+		keysGauge.Inc()
 		g.created = rev
 	}
 	g.revs = append(g.revs, rev)
@@ -86,6 +87,7 @@ func (ki *keyIndex) restore(created, modified revision, ver int64) {
 	ki.modified = modified
 	g := generation{created: created, ver: ver, revs: []revision{modified}}
 	ki.generations = append(ki.generations, g)
+	keysGauge.Inc()
 }
 
 // tombstone puts a revision, pointing to a tombstone, to the keyIndex.
@@ -100,6 +102,7 @@ func (ki *keyIndex) tombstone(main int64, sub int64) error {
 	}
 	ki.put(main, sub)
 	ki.generations = append(ki.generations, generation{})
+	keysGauge.Dec()
 	return nil
 }
 

+ 9 - 0
storage/metrics.go

@@ -51,6 +51,14 @@ var (
 			Help:      "Total number of txns seen by this member.",
 		})
 
+	keysGauge = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Namespace: "etcd",
+			Subsystem: "storage",
+			Name:      "keys_total",
+			Help:      "Total number of keys.",
+		})
+
 	indexCompactionPauseDurations = prometheus.NewHistogram(
 		prometheus.HistogramOpts{
 			Namespace: "etcd",
@@ -86,6 +94,7 @@ func init() {
 	prometheus.MustRegister(rangeCounter)
 	prometheus.MustRegister(putCounter)
 	prometheus.MustRegister(deleteCounter)
+	prometheus.MustRegister(keysGauge)
 	prometheus.MustRegister(indexCompactionPauseDurations)
 	prometheus.MustRegister(dbCompactionPauseDurations)
 	prometheus.MustRegister(dbCompactionTotalDurations)