mvcc: Printing etcd backend database related metrics inside scheduleCompaction function

Backporting commit 21bbc82 to etcd 3.4
To improve traceability of backend database usage, Added below parameter
related to backend database usage metrics inside scheduledCompaction
function.
current-db-size-bytes
current-db-size
current-db-size-in-use-bytes
current-db-size-in-use

Signed-off-by: James Blair <mail@jamesblair.net>
This commit is contained in:
James Blair 2024-02-16 21:08:20 +13:00
parent 6affeed9fd
commit e5bc8b00ae
No known key found for this signature in database

View File

@ -18,6 +18,7 @@ import (
"encoding/binary"
"time"
humanize "github.com/dustin/go-humanize"
"go.uber.org/zap"
)
@ -52,11 +53,16 @@ func (s *store) scheduleCompaction(compactMainRev int64, keep map[revision]struc
revToBytes(revision{main: compactMainRev}, rbytes)
tx.UnsafePut(metaBucketName, finishedCompactKeyName, rbytes)
tx.Unlock()
size, sizeInUse := s.b.Size(), s.b.SizeInUse()
if s.lg != nil {
s.lg.Info(
"finished scheduled compaction",
zap.Int64("compact-revision", compactMainRev),
zap.Duration("took", time.Since(totalStart)),
zap.Int64("current-db-size-bytes", size),
zap.String("current-db-size", humanize.Bytes(uint64(size))),
zap.Int64("current-db-size-in-use-bytes", sizeInUse),
zap.String("current-db-size-in-use", humanize.Bytes(uint64(sizeInUse))),
)
} else {
plog.Infof("finished scheduled compaction at %d (took %v)", compactMainRev, time.Since(totalStart))