From 3e33a3cf69e7283cd8e664f36a5b6fb215cbe597 Mon Sep 17 00:00:00 2001 From: suxb201 Date: Tue, 27 Sep 2022 10:27:16 +0800 Subject: [PATCH] fix stat for issue 485 --- internal/rdb/rdb.go | 7 +++++++ internal/reader/rdb_reader.go | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/internal/rdb/rdb.go b/internal/rdb/rdb.go index fabad5a..d5b9224 100644 --- a/internal/rdb/rdb.go +++ b/internal/rdb/rdb.go @@ -83,6 +83,13 @@ func (ld *Loader) ParseRDB() int { // read entries ld.parseRDBEntry(rd) + + // force update rdb_sent_size for issue: https://github.com/alibaba/RedisShake/issues/485 + fi, err := os.Stat(ld.filPath) + if err != nil { + log.Panicf("NewRDBReader: os.Stat error: %s", err.Error()) + } + statistics.Metrics.RdbSendSize = uint64(fi.Size()) return ld.replStreamDbId } diff --git a/internal/reader/rdb_reader.go b/internal/reader/rdb_reader.go index 31e00d7..ee6444e 100644 --- a/internal/reader/rdb_reader.go +++ b/internal/reader/rdb_reader.go @@ -4,6 +4,8 @@ import ( "github.com/alibaba/RedisShake/internal/entry" "github.com/alibaba/RedisShake/internal/log" "github.com/alibaba/RedisShake/internal/rdb" + "github.com/alibaba/RedisShake/internal/statistics" + "os" "path/filepath" ) @@ -30,6 +32,12 @@ func (r *rdbReader) StartRead() chan *entry.Entry { go func() { // start parse rdb log.Infof("start send RDB. path=[%s]", r.path) + fi, err := os.Stat(r.path) + if err != nil { + log.Panicf("NewRDBReader: os.Stat error: %s", err.Error()) + } + statistics.Metrics.RdbFileSize = uint64(fi.Size()) + statistics.Metrics.RdbReceivedSize = uint64(fi.Size()) rdbLoader := rdb.NewLoader(r.path, r.ch) _ = rdbLoader.ParseRDB() log.Infof("send RDB finished. path=[%s]", r.path)