summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/aof.c2
-rw-r--r--src/rdb.c1
-rw-r--r--src/server.c6
-rw-r--r--src/server.h2
4 files changed, 10 insertions, 1 deletions
diff --git a/src/aof.c b/src/aof.c
index d7ba6b318..affe74441 100644
--- a/src/aof.c
+++ b/src/aof.c
@@ -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];
diff --git a/src/rdb.c b/src/rdb.c
index 533665d16..360ca605b 100644
--- a/src/rdb.c
+++ b/src/rdb.c
@@ -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);
diff --git a/src/server.c b/src/server.c
index 16cf285e1..e157bd854 100644
--- a/src/server.c
+++ b/src/server.c
@@ -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,
diff --git a/src/server.h b/src/server.h
index ed514a32b..41c1a3feb 100644
--- a/src/server.h
+++ b/src/server.h
@@ -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. */