From 89e6442c097f5c3d56498600015b6f2e6d8048a4 Mon Sep 17 00:00:00 2001 From: malavan Date: Thu, 26 Aug 2021 19:45:33 +0000 Subject: [PATCH] add stats for storage provider reads Former-commit-id: 612393ffba43cda31443605de924dc8dcf77ef52 --- src/db.cpp | 2 ++ src/server.cpp | 8 ++++++-- src/server.h | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/db.cpp b/src/db.cpp index 4a31e8ef6..fc786f095 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -2801,8 +2801,10 @@ LNotFound: serverAssert(m_setexpire->find(sdsKey) != m_setexpire->end()); } serverAssert(o->FExpires() == (m_setexpire->find(sdsKey) != m_setexpire->end())); + g_pserver->stat_storage_provider_read_hits++; } else { sdsfree(sdsNewKey); + g_pserver->stat_storage_provider_read_misses++; } *pde = dictFind(m_pdict, sdsKey); diff --git a/src/server.cpp b/src/server.cpp index 05ca231bd..0b2c5ed68 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -5798,7 +5798,9 @@ sds genRedisInfoString(const char *section) { "total_reads_processed:%lld\r\n" "total_writes_processed:%lld\r\n" "instantaneous_lock_contention:%d\r\n" - "avg_lock_contention:%f\r\n", + "avg_lock_contention:%f\r\n" + "storage_provider_read_hits:%lld\r\n" + "storage_provider_read_misses:%lld\r\n", g_pserver->stat_numconnections, g_pserver->stat_numcommands, getInstantaneousMetric(STATS_METRIC_COMMAND), @@ -5836,7 +5838,9 @@ sds genRedisInfoString(const char *section) { stat_total_reads_processed, stat_total_writes_processed, aeLockContention(), - avgLockContention); + avgLockContention, + g_pserver->stat_storage_provider_read_hits, + g_pserver->stat_storage_provider_read_misses); } /* Replication */ diff --git a/src/server.h b/src/server.h index b18989603..adf16dc41 100644 --- a/src/server.h +++ b/src/server.h @@ -2242,6 +2242,8 @@ struct redisServer { long long stat_dump_payload_sanitizations; /* Number deep dump payloads integrity validations. */ std::atomic stat_total_reads_processed; /* Total number of read events processed */ std::atomic stat_total_writes_processed; /* Total number of write events processed */ + long long stat_storage_provider_read_hits; + long long stat_storage_provider_read_misses; /* The following two are used to track instantaneous metrics, like * number of operations per second, network traffic. */ struct {