Repository: kudu Updated Branches: refs/heads/master c497c69bb -> 656ed6a84
KUDU-2270: Add a flag to control logging in RpczStore::LogTrace() This change adds a new flag FLAGS_rpc_duration_too_long_ms which controls the duration above which a RPC is considered too long and is logged at INFO level in the log. Previously, this threshold is hardcoded to 1000ms which may be too short for a busy Impalad demon, leading to massive log spew. Change-Id: Ie587ee602e83bb65d74f7ee622a9bc47897f2574 Reviewed-on: http://gerrit.cloudera.org:8080/9117 Reviewed-by: Todd Lipcon <[email protected]> Tested-by: Kudu Jenkins Project: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/656ed6a8 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/656ed6a8 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/656ed6a8 Branch: refs/heads/master Commit: 656ed6a844174d4faacd64702f16c6d9948f3eee Parents: c497c69 Author: Michael Ho <[email protected]> Authored: Wed Jan 24 00:05:11 2018 -0800 Committer: Todd Lipcon <[email protected]> Committed: Wed Jan 24 19:35:40 2018 +0000 ---------------------------------------------------------------------- src/kudu/rpc/rpc-test.cc | 1 + src/kudu/rpc/rpcz_store.cc | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kudu/blob/656ed6a8/src/kudu/rpc/rpc-test.cc ---------------------------------------------------------------------- diff --git a/src/kudu/rpc/rpc-test.cc b/src/kudu/rpc/rpc-test.cc index 26d0a7b..b653706 100644 --- a/src/kudu/rpc/rpc-test.cc +++ b/src/kudu/rpc/rpc-test.cc @@ -71,6 +71,7 @@ METRIC_DECLARE_histogram(rpc_incoming_queue_time); DECLARE_bool(rpc_reopen_outbound_connections); DECLARE_int32(rpc_negotiation_inject_delay_ms); +DECLARE_int32(rpc_duration_too_long_ms); using std::shared_ptr; using std::string; http://git-wip-us.apache.org/repos/asf/kudu/blob/656ed6a8/src/kudu/rpc/rpcz_store.cc ---------------------------------------------------------------------- diff --git a/src/kudu/rpc/rpcz_store.cc b/src/kudu/rpc/rpcz_store.cc index 8c8c04a..2f0e9c8 100644 --- a/src/kudu/rpc/rpcz_store.cc +++ b/src/kudu/rpc/rpcz_store.cc @@ -49,6 +49,13 @@ DEFINE_bool(rpc_dump_all_traces, false, TAG_FLAG(rpc_dump_all_traces, advanced); TAG_FLAG(rpc_dump_all_traces, runtime); +DEFINE_int32(rpc_duration_too_long_ms, 1000, + "Threshold (in milliseconds) above which a RPC is considered too long and its " + "duration and method name are logged at INFO level. The time measured is between " + "when a RPC is accepted and when its call handler completes."); +TAG_FLAG(rpc_duration_too_long_ms, advanced); +TAG_FLAG(rpc_duration_too_long_ms, runtime); + using std::pair; using std::string; using std::vector; @@ -254,7 +261,7 @@ void RpczStore::LogTrace(InboundCall* call) { if (PREDICT_FALSE(FLAGS_rpc_dump_all_traces)) { LOG(INFO) << call->ToString() << " took " << duration_ms << "ms. Trace:"; call->trace()->Dump(&LOG(INFO), true); - } else if (duration_ms > 1000) { + } else if (duration_ms > FLAGS_rpc_duration_too_long_ms) { LOG(INFO) << call->ToString() << " took " << duration_ms << "ms. " << "Request Metrics: " << call->trace()->MetricsAsJSON(); }
