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)