diff --git a/storage/key_index.go b/storage/key_index.go index 4439c46b5..f100d9f81 100644 --- a/storage/key_index.go +++ b/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 } diff --git a/storage/metrics.go b/storage/metrics.go index d677c879b..a38f9ac72 100644 --- a/storage/metrics.go +++ b/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,8 @@ func init() { prometheus.MustRegister(rangeCounter) prometheus.MustRegister(putCounter) prometheus.MustRegister(deleteCounter) + prometheus.MustRegister(txnCounter) + prometheus.MustRegister(keysGauge) prometheus.MustRegister(indexCompactionPauseDurations) prometheus.MustRegister(dbCompactionPauseDurations) prometheus.MustRegister(dbCompactionTotalDurations)