From 6c4d904baf7d5c8717cce04ec69fc491f710823a Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 2 Oct 2013 10:10:08 +0200 Subject: [PATCH] Cluster: bus messages stats in CLUSTER info. --- src/cluster.c | 10 +++++++++- src/redis.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cluster.c b/src/cluster.c index 9328ab1b..c9011246 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -259,6 +259,8 @@ void clusterInit(void) { server.cluster->failover_auth_count = 0; server.cluster->failover_auth_epoch = 0; server.cluster->last_vote_epoch = 0; + server.cluster->stats_bus_messages_sent = 0; + server.cluster->stats_bus_messages_received = 0; memset(server.cluster->migrating_slots_to,0, sizeof(server.cluster->migrating_slots_to)); memset(server.cluster->importing_slots_from,0, @@ -878,6 +880,7 @@ int clusterProcessPacket(clusterLink *link) { uint64_t senderCurrentEpoch, senderConfigEpoch; clusterNode *sender; + server.cluster->stats_bus_messages_received++; redisLog(REDIS_DEBUG,"--- Processing packet of type %d, %lu bytes", type, (unsigned long) totlen); @@ -1318,6 +1321,7 @@ void clusterSendMessage(clusterLink *link, unsigned char *msg, size_t msglen) { clusterWriteHandler,link); link->sndbuf = sdscatlen(link->sndbuf, msg, msglen); + server.cluster->stats_bus_messages_sent++; } /* Send a message to all the nodes that are part of the cluster having @@ -2449,6 +2453,8 @@ void clusterCommand(redisClient *c) { "cluster_known_nodes:%lu\r\n" "cluster_size:%d\r\n" "cluster_current_epoch:%llu\r\n" + "cluster_stats_messages_sent:%lld\r\n" + "cluster_stats_messages_received:%lld\r\n" , statestr[server.cluster->state], slots_assigned, slots_ok, @@ -2456,7 +2462,9 @@ void clusterCommand(redisClient *c) { slots_fail, dictSize(server.cluster->nodes), server.cluster->size, - (unsigned long long) server.cluster->currentEpoch + (unsigned long long) server.cluster->currentEpoch, + server.cluster->stats_bus_messages_sent, + server.cluster->stats_bus_messages_received ); addReplySds(c,sdscatprintf(sdsempty(),"$%lu\r\n", (unsigned long)sdslen(info))); diff --git a/src/redis.h b/src/redis.h index 995198f6..844c4a32 100644 --- a/src/redis.h +++ b/src/redis.h @@ -654,6 +654,8 @@ typedef struct { /* The followign fields are uesd by masters to take state on elections. */ uint64_t last_vote_epoch; /* Epoch of the last vote granted. */ int handle_slave_failover_asap; /* Call clusterHandleSlaveFailover() ASAP. */ + long long stats_bus_messages_sent; /* Num of msg sent via cluster bus. */ + long long stats_bus_messages_received; /* Num of msg received via cluster bus. */ } clusterState; /* Redis cluster messages header */ -- GitLab