]> git.saurik.com Git - redis.git/commitdiff
implemented two new INFO fields showing the size of clients max input and output...
authorantirez <antirez@gmail.com>
Fri, 14 Jan 2011 09:20:02 +0000 (10:20 +0100)
committerantirez <antirez@gmail.com>
Fri, 14 Jan 2011 09:20:02 +0000 (10:20 +0100)
src/networking.c
src/redis.c
src/redis.h

index 6d232ecf7691b0e52ffbaaee3cae3cbdc9a1b95d..55daff85de495f0fadf003ea51d4403858c0e027 100644 (file)
@@ -820,3 +820,22 @@ void readQueryFromClient(aeEventLoop *el, int fd, void *privdata, int mask) {
     }
     processInputBuffer(c);
 }
     }
     processInputBuffer(c);
 }
+
+void getClientsMaxBuffers(unsigned long *longest_output_list,
+                          unsigned long *biggest_input_buffer) {
+    redisClient *c;
+    listNode *ln;
+    listIter li;
+    unsigned long lol = 0, bib = 0;
+
+    listRewind(server.clients,&li);
+    while ((ln = listNext(&li)) != NULL) {
+        c = listNodeValue(ln);
+
+        if (listLength(c->reply) > lol) lol = listLength(c->reply);
+        if (sdslen(c->querybuf) > bib) bib = sdslen(c->querybuf);
+    }
+    *longest_output_list = lol;
+    *biggest_input_buffer = bib;
+}
+
index 4f676a48054e36fe641a9ef45b96faadb4dc1a9a..5aabe3bcb10c3d8605cbc792389cecfd412a17d7 100644 (file)
@@ -1148,9 +1148,11 @@ sds genRedisInfoString(void) {
     int j;
     char hmem[64];
     struct rusage self_ru, c_ru;
     int j;
     char hmem[64];
     struct rusage self_ru, c_ru;
+    unsigned long lol, bib;
 
     getrusage(RUSAGE_SELF, &self_ru);
     getrusage(RUSAGE_CHILDREN, &c_ru);
 
     getrusage(RUSAGE_SELF, &self_ru);
     getrusage(RUSAGE_CHILDREN, &c_ru);
+    getClientsMaxBuffers(&lol,&bib);
 
     bytesToHuman(hmem,zmalloc_used_memory());
     info = sdscatprintf(sdsempty(),
 
     bytesToHuman(hmem,zmalloc_used_memory());
     info = sdscatprintf(sdsempty(),
@@ -1169,6 +1171,8 @@ sds genRedisInfoString(void) {
         "used_cpu_user_childrens:%.2f\r\n"
         "connected_clients:%d\r\n"
         "connected_slaves:%d\r\n"
         "used_cpu_user_childrens:%.2f\r\n"
         "connected_clients:%d\r\n"
         "connected_slaves:%d\r\n"
+        "client_longest_output_list:%lu\r\n"
+        "client_biggest_input_buf:%lu\r\n"
         "blocked_clients:%d\r\n"
         "used_memory:%zu\r\n"
         "used_memory_human:%s\r\n"
         "blocked_clients:%d\r\n"
         "used_memory:%zu\r\n"
         "used_memory_human:%s\r\n"
@@ -1208,6 +1212,7 @@ sds genRedisInfoString(void) {
         (float)c_ru.ru_stime.tv_sec+(float)c_ru.ru_stime.tv_usec/1000000,
         listLength(server.clients)-listLength(server.slaves),
         listLength(server.slaves),
         (float)c_ru.ru_stime.tv_sec+(float)c_ru.ru_stime.tv_usec/1000000,
         listLength(server.clients)-listLength(server.slaves),
         listLength(server.slaves),
+        lol, bib,
         server.bpop_blocked_clients,
         zmalloc_used_memory(),
         hmem,
         server.bpop_blocked_clients,
         zmalloc_used_memory(),
         hmem,
index c5fd7a7631b0433e389fefe36de47a1cfef5d810..bbcdb45527b1a257b8db242195ea2b559d1f9987 100644 (file)
@@ -661,6 +661,8 @@ void addReplyDouble(redisClient *c, double d);
 void addReplyLongLong(redisClient *c, long long ll);
 void addReplyMultiBulkLen(redisClient *c, long length);
 void *dupClientReplyValue(void *o);
 void addReplyLongLong(redisClient *c, long long ll);
 void addReplyMultiBulkLen(redisClient *c, long length);
 void *dupClientReplyValue(void *o);
+void getClientsMaxBuffers(unsigned long *longest_output_list,
+                          unsigned long *biggest_input_buffer);
 
 #ifdef __GNUC__
 void addReplyErrorFormat(redisClient *c, const char *fmt, ...)
 
 #ifdef __GNUC__
 void addReplyErrorFormat(redisClient *c, const char *fmt, ...)