Merge pull request #17436 from jmhbnz/backport-logging-database-metrics-during-compaction

[3.4] mvcc: Printing etcd backend database related metrics inside scheduleCompaction function
This commit is contained in:
Benjamin Wang 2024-02-16 08:44:45 +00:00 committed by GitHub
commit c5cb7aab0f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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))