add is_doing_bgsave metrics item

v4
suxb201 2 years ago committed by suxb201
parent b7c434395c
commit 3c33aae55f
  1. 2
      internal/reader/psync.go
  2. 1
      internal/statistics/statistics.go
  3. 5
      scripts/cluster_helper/cluster_helper.py

@ -123,6 +123,7 @@ func (r *psyncReader) saveRDB() {
r.receivedOffset = int64(masterOffset)
log.Infof("source db is doing bgsave. address=[%s]", r.address)
statistics.Metrics.IsDoingBgsave = true
timeStart := time.Now()
// format: \n\n\n$<length>\r\n<rdb>
for true {
@ -139,6 +140,7 @@ func (r *psyncReader) saveRDB() {
}
break
}
statistics.Metrics.IsDoingBgsave = false
log.Infof("source db bgsave finished. timeUsed=[%.2f]s, address=[%s]", time.Since(timeStart).Seconds(), r.address)
lengthStr, err := r.rd.ReadString('\n')
if err != nil {

@ -18,6 +18,7 @@ type metrics struct {
DisallowEntriesCount uint64 `json:"disallow_entries_count"`
// rdb
IsDoingBgsave bool `json:"is_doing_bgsave"`
RdbFileSize uint64 `json:"rdb_file_size"`
RdbReceivedSize uint64 `json:"rdb_received_size"`
RdbSendSize uint64 `json:"rdb_send_size"`

@ -88,7 +88,10 @@ def loop():
for metric in sorted(metrics, key=lambda x: x["address"]):
address = metric['address']
if metric['rdb_file_size'] == 0:
print(f"{metric['address']} shaking...")
if metric['is_doing_bgsave']:
print(f"{address} is doing bgsave...")
else:
print(f"{metric['address']} handshaking...")
elif metric['rdb_received_size'] < metric['rdb_file_size']:
print(f"{metric['address']} receiving rdb. "
f"percent=[{metric['rdb_received_size'] / metric['rdb_file_size'] * 100:.2f}]%, "

Loading…
Cancel
Save