MXS-1220: Add back the old diagnostic entry point

This makes 2.2 maxadmin backwards compatible with 2.1.
This commit is contained in:
Markus Mäkelä
2017-04-21 12:13:08 +03:00
committed by Markus Mäkelä
parent bab7957952
commit dd68069471
15 changed files with 181 additions and 59 deletions

View File

@ -572,7 +572,8 @@ static MXS_ROUTER_SESSION* newSession(MXS_ROUTER* instance, MXS_SESSION* session
static void closeSession(MXS_ROUTER* instance, MXS_ROUTER_SESSION* session);
static void freeSession(MXS_ROUTER* instance, MXS_ROUTER_SESSION* session);
static int routeQuery(MXS_ROUTER* instance, MXS_ROUTER_SESSION* session, GWBUF* querybuf);
static json_t* diagnostics(const MXS_ROUTER* instance);
static void diagnostics(MXS_ROUTER* instance, DCB* dcb);
static json_t* diagnostics_json(const MXS_ROUTER* instance);
static void clientReply(MXS_ROUTER* instance, MXS_ROUTER_SESSION* router_session,
GWBUF* resultbuf, DCB* backend_dcb);
static void handleError(MXS_ROUTER* instance, MXS_ROUTER_SESSION* router_session,
@ -600,6 +601,7 @@ MXS_MODULE* MXS_CREATE_MODULE()
freeSession,
routeQuery,
diagnostics,
diagnostics_json,
clientReply,
handleError,
getCapabilities,
@ -759,7 +761,24 @@ static int routeQuery(MXS_ROUTER* instance, MXS_ROUTER_SESSION* session, GWBUF*
* @param instance The router instance
* @param dcb The DCB for diagnostic output
*/
static json_t* diagnostics(const MXS_ROUTER* instance)
static void diagnostics(MXS_ROUTER* instance, DCB* dcb)
{
RRRouter* router = static_cast<RRRouter*>(instance);
dcb_printf(dcb, "\t\tQueries routed successfully: %lu\n", router->m_routing_s);
dcb_printf(dcb, "\t\tFailed routing attempts: %lu\n", router->m_routing_f);
dcb_printf(dcb, "\t\tClient replies routed: %lu\n", router->m_routing_c);
}
/**
* @brief Diagnostics routine (API)
*
* Print router statistics to the DCB passed in. This is usually called by the
* MaxInfo or MaxAdmin modules.
*
* @param instance The router instance
* @param dcb The DCB for diagnostic output
*/
static json_t* diagnostics_json(const MXS_ROUTER* instance)
{
const RRRouter* router = static_cast<const RRRouter*>(instance);
json_t* rval = json_object();