Log the connected masters in the INFO command

This commit is contained in:
John Sully 2022-04-02 01:20:45 -04:00
parent 94990925ba
commit 269b05b918
3 changed files with 10 additions and 3 deletions

View File

@ -5210,7 +5210,7 @@ void failoverCommand(client *c) {
addReply(c,shared.ok);
}
int FBrokenLinkToMaster()
int FBrokenLinkToMaster(int *pmastersOnline)
{
listIter li;
listNode *ln;
@ -5224,6 +5224,10 @@ int FBrokenLinkToMaster()
++connected;
}
if (pmastersOnline != nullptr)
*pmastersOnline = connected;
if (g_pserver->repl_quorum < 0) {
return connected < (int)listLength(g_pserver->masters);
} else {

View File

@ -5984,8 +5984,11 @@ sds genRedisInfoString(const char *section) {
listLength(g_pserver->masters) == 0 ? "master"
: g_pserver->fActiveReplica ? "active-replica" : "slave");
if (listLength(g_pserver->masters)) {
int connectedMasters = 0;
info = sdscatprintf(info, "master_global_link_status:%s\r\n",
FBrokenLinkToMaster() ? "down" : "up");
FBrokenLinkToMaster(&connectedMasters) ? "down" : "up");
info = sdscatprintf(info, "connected_masters:%d\r\n", connectedMasters);
int cmasters = 0;
listIter li;

View File

@ -3788,7 +3788,7 @@ void failoverCommand(client *c);
void lfenceCommand(client *c);
int FBrokenLinkToMaster();
int FBrokenLinkToMaster(int *pconnectMasters = nullptr);
int FActiveMaster(client *c);
struct redisMaster *MasterInfoFromClient(client *c);