Merge pull request #11393 from jingyih/automated-cherry-pick-of-#11374-upstream-release-3.4

Automated cherry pick of #11374 on release 3.4
This commit is contained in:
Wenjia 2019-11-26 15:02:27 -08:00 committed by GitHub
commit 1af0b51537
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -296,6 +296,14 @@ var (
// overridden by mvcc initialization // overridden by mvcc initialization
reportCompactRevMu sync.RWMutex reportCompactRevMu sync.RWMutex
reportCompactRev = func() float64 { return 0 } reportCompactRev = func() float64 { return 0 }
totalPutSizeGauge = prometheus.NewGauge(
prometheus.GaugeOpts{
Namespace: "etcd_debugging",
Subsystem: "mvcc",
Name: "total_put_size_in_bytes",
Help: "The total size of put kv pairs seen by this member.",
})
) )
func init() { func init() {
@ -325,6 +333,7 @@ func init() {
prometheus.MustRegister(hashRevSec) prometheus.MustRegister(hashRevSec)
prometheus.MustRegister(currentRev) prometheus.MustRegister(currentRev)
prometheus.MustRegister(compactRev) prometheus.MustRegister(compactRev)
prometheus.MustRegister(totalPutSizeGauge)
} }
// ReportEventReceived reports that an event is received. // ReportEventReceived reports that an event is received.

View File

@ -21,14 +21,15 @@ type metricsTxnWrite struct {
ranges uint ranges uint
puts uint puts uint
deletes uint deletes uint
putSize int64
} }
func newMetricsTxnRead(tr TxnRead) TxnRead { func newMetricsTxnRead(tr TxnRead) TxnRead {
return &metricsTxnWrite{&txnReadWrite{tr}, 0, 0, 0} return &metricsTxnWrite{&txnReadWrite{tr}, 0, 0, 0, 0}
} }
func newMetricsTxnWrite(tw TxnWrite) TxnWrite { func newMetricsTxnWrite(tw TxnWrite) TxnWrite {
return &metricsTxnWrite{tw, 0, 0, 0} return &metricsTxnWrite{tw, 0, 0, 0, 0}
} }
func (tw *metricsTxnWrite) Range(key, end []byte, ro RangeOptions) (*RangeResult, error) { func (tw *metricsTxnWrite) Range(key, end []byte, ro RangeOptions) (*RangeResult, error) {
@ -43,6 +44,8 @@ func (tw *metricsTxnWrite) DeleteRange(key, end []byte) (n, rev int64) {
func (tw *metricsTxnWrite) Put(key, value []byte, lease lease.LeaseID) (rev int64) { func (tw *metricsTxnWrite) Put(key, value []byte, lease lease.LeaseID) (rev int64) {
tw.puts++ tw.puts++
size := int64(len(key) + len(value))
tw.putSize += size
return tw.TxnWrite.Put(key, value, lease) return tw.TxnWrite.Put(key, value, lease)
} }
@ -60,6 +63,7 @@ func (tw *metricsTxnWrite) End() {
puts := float64(tw.puts) puts := float64(tw.puts)
putCounter.Add(puts) putCounter.Add(puts)
putCounterDebug.Add(puts) // TODO: remove in 3.5 release putCounterDebug.Add(puts) // TODO: remove in 3.5 release
totalPutSizeGauge.Add(float64(tw.putSize))
deletes := float64(tw.deletes) deletes := float64(tw.deletes)
deleteCounter.Add(deletes) deleteCounter.Add(deletes)