aof rewrite and rdb save counters in info (#10178)
Add aof_rewrites and rdb_snapshots counters to info. This is useful to figure our if a rewrite or snapshot happened since last check. This was part of the (ongoing) effort to provide a safe backup solution for multipart-aof backups.
This commit is contained in:
parent
a50aa29bde
commit
56fa48ffc1
@ -2348,7 +2348,7 @@ int rewriteAppendOnlyFileBackground(void) {
|
||||
server.aof_selected_db = -1;
|
||||
flushAppendOnlyFile(1);
|
||||
if (openNewIncrAofForAppend() != C_OK) return C_ERR;
|
||||
|
||||
server.stat_aof_rewrites++;
|
||||
if ((childpid = redisFork(CHILD_TYPE_AOF)) == 0) {
|
||||
char tmpfile[256];
|
||||
|
||||
|
@ -1471,6 +1471,7 @@ int rdbSaveBackground(int req, char *filename, rdbSaveInfo *rsi) {
|
||||
pid_t childpid;
|
||||
|
||||
if (hasActiveChildProcess()) return C_ERR;
|
||||
server.stat_rdb_saves++;
|
||||
|
||||
server.dirty_before_bgsave = server.dirty;
|
||||
server.lastbgsave_try = time(NULL);
|
||||
|
@ -2282,6 +2282,8 @@ void resetServerStats(void) {
|
||||
memset(server.inst_metric[j].samples,0,
|
||||
sizeof(server.inst_metric[j].samples));
|
||||
}
|
||||
server.stat_aof_rewrites = 0;
|
||||
server.stat_rdb_saves = 0;
|
||||
atomicSet(server.stat_net_input_bytes, 0);
|
||||
atomicSet(server.stat_net_output_bytes, 0);
|
||||
server.stat_unexpected_error_replies = 0;
|
||||
@ -5277,6 +5279,7 @@ sds genRedisInfoString(dict *section_dict, int all_sections, int everything) {
|
||||
"rdb_last_bgsave_status:%s\r\n"
|
||||
"rdb_last_bgsave_time_sec:%jd\r\n"
|
||||
"rdb_current_bgsave_time_sec:%jd\r\n"
|
||||
"rdb_saves:%lld\r\n"
|
||||
"rdb_last_cow_size:%zu\r\n"
|
||||
"rdb_last_load_keys_expired:%lld\r\n"
|
||||
"rdb_last_load_keys_loaded:%lld\r\n"
|
||||
@ -5286,6 +5289,7 @@ sds genRedisInfoString(dict *section_dict, int all_sections, int everything) {
|
||||
"aof_last_rewrite_time_sec:%jd\r\n"
|
||||
"aof_current_rewrite_time_sec:%jd\r\n"
|
||||
"aof_last_bgrewrite_status:%s\r\n"
|
||||
"aof_rewrites:%lld\r\n"
|
||||
"aof_last_write_status:%s\r\n"
|
||||
"aof_last_cow_size:%zu\r\n"
|
||||
"module_fork_in_progress:%d\r\n"
|
||||
@ -5305,6 +5309,7 @@ sds genRedisInfoString(dict *section_dict, int all_sections, int everything) {
|
||||
(intmax_t)server.rdb_save_time_last,
|
||||
(intmax_t)((server.child_type != CHILD_TYPE_RDB) ?
|
||||
-1 : time(NULL)-server.rdb_save_time_start),
|
||||
server.stat_rdb_saves,
|
||||
server.stat_rdb_cow_bytes,
|
||||
server.rdb_last_load_keys_expired,
|
||||
server.rdb_last_load_keys_loaded,
|
||||
@ -5315,6 +5320,7 @@ sds genRedisInfoString(dict *section_dict, int all_sections, int everything) {
|
||||
(intmax_t)((server.child_type != CHILD_TYPE_AOF) ?
|
||||
-1 : time(NULL)-server.aof_rewrite_time_start),
|
||||
(server.aof_lastbgrewrite_status == C_OK) ? "ok" : "err",
|
||||
server.stat_aof_rewrites,
|
||||
(server.aof_last_write_status == C_OK &&
|
||||
aof_bio_fsync_status == C_OK) ? "ok" : "err",
|
||||
server.stat_aof_cow_bytes,
|
||||
|
@ -1544,6 +1544,8 @@ struct redisServer {
|
||||
long long stat_total_active_defrag_time; /* Total time memory fragmentation over the limit, unit us */
|
||||
monotime stat_last_active_defrag_time; /* Timestamp of current active defrag start */
|
||||
size_t stat_peak_memory; /* Max used memory record */
|
||||
long long stat_aof_rewrites; /* number of aof file rewrites performed */
|
||||
long long stat_rdb_saves; /* number of rdb saves performed */
|
||||
long long stat_fork_time; /* Time needed to perform latest fork() */
|
||||
double stat_fork_rate; /* Fork rate in GB/sec. */
|
||||
long long stat_total_forks; /* Total count of fork. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user