Add more status information to maxadmin displays

This commit is contained in:
counterpoint
2015-05-26 14:54:32 +01:00
parent 1e700ea85b
commit fccb9df817
2 changed files with 65 additions and 0 deletions

View File

@ -1358,6 +1358,18 @@ printDCB(DCB *dcb)
printf("\tUsername to: %s\n", dcb->user);
if (dcb->writeq)
printf("\tQueued write data: %d\n",gwbuf_length(dcb->writeq));
char *server_status = server_status(dcb->dcb_server_status);
if (server_status)
{
printf("\tServer status: %s\n", server_status);
free(server_status);
}
char *rolename = dcb_role_name(dcb);
if (rolename)
{
printf("\tRole: %s\n", rolename);
free(rolename);
}
printf("\tStatistics:\n");
printf("\t\tNo. of Reads: %d\n",
dcb->stats.n_reads);
@ -1438,6 +1450,18 @@ DCB *dcb;
if (dcb->writeq)
dcb_printf(pdcb, "\tQueued write data: %d\n",
gwbuf_length(dcb->writeq));
char *server_status = server_status(dcb->dcb_server_status);
if (server_status)
{
dcb_printf(pdcb, "\tServer status: %s\n", server_status);
free(server_status);
}
char *rolename = dcb_role_name(dcb);
if (rolename)
{
dcb_printf(pdcb, "\tRole: %s\n", rolename);
free(rolename);
}
dcb_printf(pdcb, "\tStatistics:\n");
dcb_printf(pdcb, "\t\tNo. of Reads: %d\n", dcb->stats.n_reads);
dcb_printf(pdcb, "\t\tNo. of Writes: %d\n", dcb->stats.n_writes);
@ -1541,6 +1565,18 @@ dprintDCB(DCB *pdcb, DCB *dcb)
dcb_printf(pdcb, "\tQueued write data: %d\n", gwbuf_length(dcb->writeq));
if (dcb->delayq)
dcb_printf(pdcb, "\tDelayed write data: %d\n", gwbuf_length(dcb->delayq));
char *server_status = server_status(dcb->dcb_server_status);
if (server_status)
{
dcb_printf(pdcb, "\tServer status: %s\n", server_status);
free(server_status);
}
char *rolename = dcb_role_name(dcb);
if (rolename)
{
dcb_printf(pdcb, "\tRole: %s\n", rolename);
free(rolename);
}
dcb_printf(pdcb, "\tStatistics:\n");
dcb_printf(pdcb, "\t\tNo. of Reads: %d\n",
dcb->stats.n_reads);
@ -2275,3 +2311,30 @@ DCB *ptr;
spinlock_release(&dcbspin);
return rval;
}
/**
* Convert a DCB role to a string, the returned
* string has been malloc'd and must be free'd by the caller
*
* @param DCB The DCB to return the role of
* @return A string representation of the DCB role
*/
char *
dcb_role_name(DCB *dcb)
{
char *name = NULL;
if (NULL != (name = (char *)malloc(64)))
{
name[0] = 0;
if (DCB_ROLE_SERVICE_LISTENER = dcb->dcb_role)
strcat(name, "Service Listener");
else if (DCB_ROLE_REQUEST_HANDLER = dcb->dcb_role)
strcat(name, "Request Handler");
else if (DCB_ROLE_INTERNAL = dcb->dcb_role)
strcat(name, "Internal");
else
strcat(name, "Unknown");
}
return name;
}

View File

@ -340,6 +340,8 @@ void dcb_call_foreach (struct server* server, DCB_REASON reason);
size_t dcb_get_session_id(DCB* dcb);
bool dcb_get_ses_log_info(DCB* dcb, size_t* sesid, int* enabled_logs);
char *dcb_role_name(DCB *); /* Return the name of a role */
/**