diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2014-07-10 12:49:53 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2014-07-31 09:03:56 -0700 |
commit | 93a4558dddbea78a51171b2bf92e37da3ffb40dd (patch) | |
tree | a760624599dd8b79a0a059a832ffcc8eb06a236d /rpc | |
parent | 72d2143c78bb01135eef8fa6a210e8a1a0f987ce (diff) |
client/rpc: Add ping and msgs stats
This can be seen as below,
># cat $META/graphs/active/vol-client-0/private |grep ping_msgs_sent
ping_msgs_sent = 2
># cat $META/graphs/active/vol-client-0/private |grep "^msgs_sent"
msgs_sent = 13
where $META is /<fuse-mountpt>/.meta
Change-Id: I2107ec2b045bac701377760635e18758adb943a3
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/8285
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/rpc-clnt-ping.c | 9 | ||||
-rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.c | 4 | ||||
-rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.h | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt-ping.c b/rpc/rpc-lib/src/rpc-clnt-ping.c index 948a244838e..21de9da4c1a 100644 --- a/rpc/rpc-lib/src/rpc-clnt-ping.c +++ b/rpc/rpc-lib/src/rpc-clnt-ping.c @@ -189,7 +189,9 @@ rpc_clnt_ping (struct rpc_clnt *rpc) { call_frame_t *frame = NULL; int32_t ret = -1; + rpc_clnt_connection_t *conn = NULL; + conn = &rpc->conn; frame = create_frame (THIS, THIS->ctx->pool); if (!frame) goto fail; @@ -203,6 +205,13 @@ rpc_clnt_ping (struct rpc_clnt *rpc) gf_log (THIS->name, GF_LOG_ERROR, "failed to start ping timer"); } + else { + /* ping successfully queued in list of saved frames + * for the connection*/ + pthread_mutex_lock (&conn->lock); + conn->pingcnt++; + pthread_mutex_unlock (&conn->lock); + } return ret; diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index b831c537723..2ae2dfb71bf 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -527,6 +527,9 @@ rpc_clnt_connection_cleanup (rpc_clnt_connection_t *conn) conn->ping_started = 0; rpc_clnt_unref (clnt); } + /*reset rpc msgs stats*/ + conn->pingcnt = 0; + conn->msgcnt = 0; } pthread_mutex_unlock (&conn->lock); @@ -1565,6 +1568,7 @@ rpc_clnt_submit (struct rpc_clnt *rpc, rpc_clnt_prog_t *prog, if ((ret >= 0) && frame) { /* Save the frame in queue */ __save_frame (rpc, frame, rpcreq); + conn->msgcnt++; gf_log ("rpc-clnt", GF_LOG_TRACE, "submitted request " "(XID: 0x%x Program: %s, ProgVers: %d, " diff --git a/rpc/rpc-lib/src/rpc-clnt.h b/rpc/rpc-lib/src/rpc-clnt.h index f439d538761..6492a81f24e 100644 --- a/rpc/rpc-lib/src/rpc-clnt.h +++ b/rpc/rpc-lib/src/rpc-clnt.h @@ -146,6 +146,8 @@ struct rpc_clnt_connection { int32_t ping_started; char *name; int32_t ping_timeout; + uint64_t pingcnt; + uint64_t msgcnt; }; typedef struct rpc_clnt_connection rpc_clnt_connection_t; |