mvcc: add "etcd_mvcc_put_size_in_bytes" to monitor the throughput of put request.
parent
63dd73c186
commit
28f40d7794
|
@ -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 }
|
||||||
|
|
||||||
|
putSizeGauge = prometheus.NewGauge(
|
||||||
|
prometheus.GaugeOpts{
|
||||||
|
Namespace: "etcd",
|
||||||
|
Subsystem: "mvcc",
|
||||||
|
Name: "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(putSizeGauge)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReportEventReceived reports that an event is received.
|
// ReportEventReceived reports that an event is received.
|
||||||
|
|
|
@ -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
|
||||||
|
putSizeGauge.Add(float64(tw.putSize))
|
||||||
|
|
||||||
deletes := float64(tw.deletes)
|
deletes := float64(tw.deletes)
|
||||||
deleteCounter.Add(deletes)
|
deleteCounter.Add(deletes)
|
||||||
|
|
Loading…
Reference in New Issue