summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrishnan Parthasarathi <kparthas@redhat.com>2014-07-10 12:49:53 +0530
committerAnand Avati <avati@redhat.com>2014-07-31 09:03:56 -0700
commit93a4558dddbea78a51171b2bf92e37da3ffb40dd (patch)
treea760624599dd8b79a0a059a832ffcc8eb06a236d
parent72d2143c78bb01135eef8fa6a210e8a1a0f987ce (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>
-rw-r--r--rpc/rpc-lib/src/rpc-clnt-ping.c9
-rw-r--r--rpc/rpc-lib/src/rpc-clnt.c4
-rw-r--r--rpc/rpc-lib/src/rpc-clnt.h2
-rw-r--r--xlators/protocol/client/src/client.c4
4 files changed, 19 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;
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index 25565925a5d..a0096981f54 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -2764,6 +2764,10 @@ client_priv_dump (xlator_t *this)
gf_proc_dump_write("total_bytes_written", "%"PRIu64,
conf->rpc->conn.trans->total_bytes_write);
+ gf_proc_dump_write("ping_msgs_sent", "%"PRIu64,
+ conf->rpc->conn.pingcnt);
+ gf_proc_dump_write("msgs_sent", "%"PRIu64,
+ conf->rpc->conn.msgcnt);
}
pthread_mutex_unlock(&conf->lock);