Files
impala/.clang-tidy
Tim Armstrong cf224f8461 IMPALA-9128: part 2: dump traces for slow RPCs
This adds trace events for data stream RPCs and
dumps them when they take longer than
--impala_slow_rpc_threshold_ms.

I needed to modify the KRPC code to do this because it
currently only dumps traces for RPCs with deadlines.
I plan to add some version of this upstream in Kudu
so that we don't diverge our KRPC implementation.

Example output from test_exchange_small_buffer:

I1111 08:38:53.732910 26509 rpcz_store.cc:265] Call impala.DataStreamService.TransmitData from 127.0.0.1:42434 (request call id 43) took 7799ms. Request Metrics: {}
I1111 08:38:53.732928 26509 rpcz_store.cc:269] Trace:
1111 08:38:45.933412 (+     0us) impala-service-pool.cc:167] Inserting onto call queue
1111 08:38:45.933449 (+    37us) impala-service-pool.cc:254] Handling call
1111 08:38:45.933470 (+    21us) krpc-data-stream-mgr.cc:227] Added early sender
1111 08:38:47.906542 (+1973072us) krpc-data-stream-recvr.cc:327] Enqueuing deferred RPC
1111 08:38:53.732858 (+5826316us) krpc-data-stream-recvr.cc:506] Processing deferred RPC
1111 08:38:53.732860 (+     2us) krpc-data-stream-recvr.cc:399] Deserializing batch
1111 08:38:53.732888 (+    28us) krpc-data-stream-recvr.cc:426] Enqueuing deserialized batch
1111 08:38:53.732895 (+     7us) inbound_call.cc:162] Queueing success response

Disabled +-clang-diagnostic-gnu-zero-variadic-macro-arguments because it
had false positives on the TRACE_TO invocations.

Testing:
* Ran exhaustive and ASAN tests
* Ran stress test

Change-Id: Ic7af4b45c43ec731d742d3696112c5f800849947
Reviewed-on: http://gerrit.cloudera.org:8080/14668
Reviewed-by: Tim Armstrong <tarmstrong@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
2019-11-14 20:24:58 +00:00

100 lines
3.2 KiB
YAML

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
Checks: "-*,clang*,\
-clang-analyzer-alpha*,\
-clang-analyzer-core.CallAndMessage,\
-clang-analyzer-core.NonNullParamChecker,\
-clang-analyzer-core.NullDereference,\
-clang-analyzer-core.UndefinedBinaryOperatorResult,\
-clang-analyzer-core.uninitialized.ArraySubscript,\
-clang-analyzer-core.uninitialized.Assign,\
-clang-analyzer-core.uninitialized.Branch,\
-clang-analyzer-cplusplus.NewDeleteLeaks,\
-clang-analyzer-deadcode.DeadStores,\
-clang-analyzer-optin.performance.Padding,\
-clang-analyzer-unix.Malloc,\
-clang-analyzer-unix.MallocSizeof,\
-clang-diagnostic-c++1z-extensions,\
-clang-diagnostic-c++98*,\
-clang-diagnostic-cast-align,\
-clang-diagnostic-class-varargs,\
-clang-diagnostic-conversion,\
-clang-diagnostic-covered-switch-default,\
-clang-diagnostic-disabled-macro-expansion,\
-clang-diagnostic-documentation-html,\
-clang-diagnostic-documentation-unknown-command,\
-clang-diagnostic-double-promotion,\
-clang-diagnostic-exit-time-destructors,\
-clang-diagnostic-float-conversion,\
-clang-diagnostic-float-equal,\
-clang-diagnostic-global-constructors,\
-clang-diagnostic-gnu-anonymous-struct,\
-clang-diagnostic-gnu-zero-variadic-macro-arguments,\
-clang-diagnostic-header-hygiene,\
-clang-diagnostic-implicit-fallthrough,\
-clang-diagnostic-missing-prototypes,\
-clang-diagnostic-missing-variable-declarations,\
-clang-diagnostic-nested-anon-types,\
-clang-diagnostic-old-style-cast,\
-clang-diagnostic-overlength-strings,\
-clang-diagnostic-packed,\
-clang-diagnostic-padded,\
-clang-diagnostic-return-type-c-linkage,\
-clang-diagnostic-shadow,\
-clang-diagnostic-shadow-field-in-constructor,\
-clang-diagnostic-shorten-64-to-32,\
-clang-diagnostic-sign-compare,\
-clang-diagnostic-sign-conversion,\
-clang-diagnostic-switch-enum,\
-clang-diagnostic-undefined-func-template,\
-clang-diagnostic-undefined-reinterpret-cast,\
-clang-diagnostic-unreachable-code,\
-clang-diagnostic-unreachable-code-return,\
-clang-diagnostic-unused-command-line-argument,\
-clang-diagnostic-unused-local-typedef,\
-clang-diagnostic-unused-parameter,\
-clang-diagnostic-used-but-marked-unused,\
-clang-diagnostic-vla-extension,\
-clang-diagnostic-weak-template-vtables,\
-clang-diagnostic-weak-vtables"
# Ignore warnings in gutil
HeaderFilterRegex: "be/src/\
(benchmarks\
|catalog\
|codegen\
|common\
|exec\
|experiments\
|exprs\
|resourcebroker\
|rpc\
|runtime\
|scheduling\
|service\
|statestore\
|testutil\
|thirdparty\
|transport\
|udf\
|udf_samples\
|util)"
AnalyzeTemporaryDtors: true