mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
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>
100 lines
3.2 KiB
YAML
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
|