Added an unique ID field to every slow log entry.

This commit is contained in:
antirez 2011-06-30 17:36:15 +02:00
parent de32c37c06
commit 2cb6828480
3 changed files with 6 additions and 1 deletions

View File

@ -528,6 +528,7 @@ struct redisServer {
size_t stat_peak_memory; /* max used memory record */
long long stat_fork_time; /* time needed to perform latets fork() */
list *slowlog;
long long slowlog_entry_id;
long long slowlog_log_slower_than;
unsigned long slowlog_max_len;
/* Configuration */

View File

@ -26,6 +26,7 @@ slowlogEntry *slowlogCreateEntry(robj **argv, int argc, long long duration) {
}
se->time = time(NULL);
se->duration = duration;
se->id = server.slowlog_entry_id++;
return se;
}
@ -47,6 +48,7 @@ void slowlogFreeEntry(void *septr) {
* at server startup. */
void slowlogInit(void) {
server.slowlog = listCreate();
server.slowlog_entry_id = 0;
listSetFreeMethod(server.slowlog,slowlogFreeEntry);
}
@ -96,7 +98,8 @@ void slowlogCommand(redisClient *c) {
int j;
se = ln->value;
addReplyMultiBulkLen(c,3);
addReplyMultiBulkLen(c,4);
addReplyLongLong(c,se->id);
addReplyLongLong(c,se->time);
addReplyLongLong(c,se->duration);
addReplyMultiBulkLen(c,se->argc);

View File

@ -2,6 +2,7 @@
typedef struct slowlogEntry {
robj **argv;
int argc;
long long id; /* Unique entry identifier. */
long long duration; /* Time spent by the query, in nanoseconds. */
time_t time; /* Unix time at which the query was executed. */
} slowlogEntry;