Add protocol packet statistics to servers
The individual servers were missing a statistic that would give an estimated query count. As there is no simple way to count queries for all modules, counting the number of routed protocol packets is a suitable substitute.
This commit is contained in:
@ -589,6 +589,9 @@ routeQuery(MXS_ROUTER *instance, MXS_ROUTER_SESSION *router_session, GWBUF *queu
|
||||
|
||||
inst->stats.n_queries++;
|
||||
|
||||
// Due to the streaming nature of readconnroute, this is not accurate
|
||||
atomic_add_uint64(&router_cli_ses->backend->server->stats.packets, 1);
|
||||
|
||||
/** Dirty read for quick check if router is closed. */
|
||||
if (router_cli_ses->rses_closed)
|
||||
{
|
||||
|
@ -366,6 +366,7 @@ bool route_session_write(RWSplitSession *rses, GWBUF *querybuf,
|
||||
if (backend->execute_session_command())
|
||||
{
|
||||
nsucc += 1;
|
||||
atomic_add_uint64(&backend->server()->stats.packets, 1);
|
||||
|
||||
if (expecting_response)
|
||||
{
|
||||
@ -1183,6 +1184,7 @@ bool handle_got_target(RWSplit *inst, RWSplitSession *rses,
|
||||
}
|
||||
|
||||
atomic_add_uint64(&inst->stats().n_queries, 1);
|
||||
atomic_add_uint64(&target->server()->stats.packets, 1);
|
||||
|
||||
if (!rses->large_query && response == mxs::Backend::EXPECT_RESPONSE)
|
||||
{
|
||||
|
@ -443,6 +443,7 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket)
|
||||
{
|
||||
/** Add one query response waiter to backend reference */
|
||||
atomic_add(&m_router->m_stats.n_queries, 1);
|
||||
atomic_add_uint64(&bref->server()->stats.packets, 1);
|
||||
ret = 1;
|
||||
}
|
||||
else
|
||||
@ -743,6 +744,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command)
|
||||
if ((*it)->execute_session_command())
|
||||
{
|
||||
succp = true;
|
||||
atomic_add_uint64(&(*it)->server()->stats.packets, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user