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 | |
| 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>
| -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 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.c | 4 | 
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);  | 
