diff options
author | andrew-rykov <arykov@ydb.tech> | 2023-03-02 17:58:27 +0300 |
---|---|---|
committer | andrew-rykov <arykov@ydb.tech> | 2023-03-02 17:58:27 +0300 |
commit | 17ea27a957c0c9d02155009a458e348f186be60d (patch) | |
tree | c5b792d18bf8f9a2f5e0f33fb3b3c2ccc0cc2c30 | |
parent | 9a024452fbd14773e9b17693833e41b062a31742 (diff) | |
download | ydb-17ea27a957c0c9d02155009a458e348f186be60d.tar.gz |
enabling grpc debug log
enabling grpc debug log
-rw-r--r-- | ydb/core/cms/console/CMakeLists.darwin.txt | 1 | ||||
-rw-r--r-- | ydb/core/cms/console/CMakeLists.linux-aarch64.txt | 1 | ||||
-rw-r--r-- | ydb/core/cms/console/CMakeLists.linux.txt | 1 | ||||
-rw-r--r-- | ydb/core/cms/console/grpc_library_helper.cpp | 45 | ||||
-rw-r--r-- | ydb/core/cms/console/grpc_library_helper.h | 12 | ||||
-rw-r--r-- | ydb/core/cms/console/log_settings_configurator.cpp | 5 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/run.cpp | 10 | ||||
-rw-r--r-- | ydb/core/protos/services.proto | 1 |
8 files changed, 75 insertions, 1 deletions
diff --git a/ydb/core/cms/console/CMakeLists.darwin.txt b/ydb/core/cms/console/CMakeLists.darwin.txt index d54a54e73a6..f30062488e5 100644 --- a/ydb/core/cms/console/CMakeLists.darwin.txt +++ b/ydb/core/cms/console/CMakeLists.darwin.txt @@ -70,6 +70,7 @@ target_sources(core-cms-console PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_subdomain_key.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_state.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_pool_config.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/grpc_library_helper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.cpp diff --git a/ydb/core/cms/console/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/CMakeLists.linux-aarch64.txt index 485fe439c90..d14883cc6f8 100644 --- a/ydb/core/cms/console/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/CMakeLists.linux-aarch64.txt @@ -71,6 +71,7 @@ target_sources(core-cms-console PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_subdomain_key.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_state.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_pool_config.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/grpc_library_helper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.cpp diff --git a/ydb/core/cms/console/CMakeLists.linux.txt b/ydb/core/cms/console/CMakeLists.linux.txt index 485fe439c90..d14883cc6f8 100644 --- a/ydb/core/cms/console/CMakeLists.linux.txt +++ b/ydb/core/cms/console/CMakeLists.linux.txt @@ -71,6 +71,7 @@ target_sources(core-cms-console PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_subdomain_key.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_state.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__update_tenant_pool_config.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/grpc_library_helper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.cpp diff --git a/ydb/core/cms/console/grpc_library_helper.cpp b/ydb/core/cms/console/grpc_library_helper.cpp new file mode 100644 index 00000000000..56b2a3eb8d8 --- /dev/null +++ b/ydb/core/cms/console/grpc_library_helper.cpp @@ -0,0 +1,45 @@ +#include "grpc_library_helper.h" + +namespace NKikimr::NConsole { + +void SetGRpcLibraryFunction() { + auto logFn = [](gpr_log_func_args* args) { + auto severity = args->severity; + if (severity == GPR_LOG_SEVERITY_DEBUG) { + fprintf(stderr, ":GRPC_LIBRARY DEBUG: %s\n", args->message); + } else if (severity == GPR_LOG_SEVERITY_INFO) { + fprintf(stderr, ":GRPC_LIBRARY INFO: %s\n", args->message); + } else { + fprintf(stderr, ":GRPC_LIBRARY ERROR: %s\n", args->message); + } + }; + gpr_set_log_function(logFn); +} + +void EnableGRpcTracersEnable() { + grpc_tracer_set_enabled("cares_resolver", true); + grpc_tracer_set_enabled("channel", true); + grpc_tracer_set_enabled("connectivity_state", true); + grpc_tracer_set_enabled("sdk_authz", true); + grpc_tracer_set_enabled("http", true); + grpc_tracer_set_enabled("http1", true); + grpc_tracer_set_enabled("tcp", true); +} + +void SetGRpcLibraryLogVerbosity(NActors::NLog::EPriority prio) { + if (prio >= NActors::NLog::EPriority::PRI_DEBUG) { + gpr_set_log_verbosity(GPR_LOG_SEVERITY_DEBUG); + EnableGRpcTracersEnable(); + } else if (prio >= NActors::NLog::EPriority::PRI_INFO) { + gpr_set_log_verbosity(GPR_LOG_SEVERITY_INFO); + EnableGRpcTracersEnable(); + } else if (prio >= NActors::NLog::EPriority::PRI_ERROR) { + gpr_set_log_verbosity(GPR_LOG_SEVERITY_ERROR); + EnableGRpcTracersEnable(); + } else { + gpr_set_log_verbosity(GPR_LOG_SEVERITY_ERROR); + grpc_tracer_set_enabled("all", false); + } +} + +} // namespace NKikimr::NGRpcService diff --git a/ydb/core/cms/console/grpc_library_helper.h b/ydb/core/cms/console/grpc_library_helper.h new file mode 100644 index 00000000000..3fd2083dd09 --- /dev/null +++ b/ydb/core/cms/console/grpc_library_helper.h @@ -0,0 +1,12 @@ +#pragma once + +#include <library/cpp/grpc/server/grpc_server.h> +#include <library/cpp/actors/core/log_iface.h> + +namespace NKikimr::NConsole { + +void SetGRpcLibraryFunction(); +void EnableGRpcTracersEnable(); +void SetGRpcLibraryLogVerbosity(NActors::NLog::EPriority prio); + +} // namespace NKikimr::NGRpcService diff --git a/ydb/core/cms/console/log_settings_configurator.cpp b/ydb/core/cms/console/log_settings_configurator.cpp index aa5c5cae763..042f05ee643 100644 --- a/ydb/core/cms/console/log_settings_configurator.cpp +++ b/ydb/core/cms/console/log_settings_configurator.cpp @@ -7,6 +7,7 @@ #include <util/system/fs.h> #include <util/stream/file.h> #include <google/protobuf/text_format.h> +#include <ydb/core/cms/console/grpc_library_helper.h> namespace NKikimr::NConsole { @@ -189,6 +190,10 @@ void TLogSettingsConfigurator::ApplyComponentSettings(const TVector<NLog::TCompo ? NLog::PRI_ERROR : NLog::PRI_NOTICE; LOG_LOG_S(ctx, logPrio, NKikimrServices::CMS_CONFIGS, "TLogSettingsConfigurator: " << msg); + + if (i == NKikimrServices::GRPC_LIBRARY) { + NConsole::SetGRpcLibraryLogVerbosity(prio); + } } if (curSettings.Raw.X.SamplingLevel != settings[i].Raw.X.SamplingLevel) { NLog::EPriority prio = static_cast<NLog::EPriority>(settings[i].Raw.X.SamplingLevel); diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index 3534c4e6ad1..79854340b1f 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -28,6 +28,7 @@ #include <ydb/core/control/immediate_control_board_actor.h> #include <library/cpp/actors/protos/services_common.pb.h> +#include <ydb/core/cms/console/grpc_library_helper.h> #include <ydb/core/keyvalue/keyvalue.h> #include <ydb/core/formats/clickhouse_block.h> #include <ydb/core/grpc_services/grpc_request_proxy.h> @@ -900,6 +901,8 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { opts.SetKeepAliveEnable(false); } } + + NConsole::SetGRpcLibraryFunction(); #define GET_PATH_TO_FILE(GRPC_CONFIG, PRIMARY_FIELD, SECONDARY_FIELD) \ (GRPC_CONFIG.Has##PRIMARY_FIELD() ? GRPC_CONFIG.Get##PRIMARY_FIELD() : GRPC_CONFIG.Get##SECONDARY_FIELD()) @@ -1207,7 +1210,12 @@ void TKikimrRunner::ApplyLogSettings(const TKikimrRunConfig& runConfig) TString explanation; if (entry.HasLevel()) { - Y_VERIFY(LogSettings->SetLevel((NLog::EPriority)entry.GetLevel(), component, explanation) == 0); + auto prio = (NLog::EPriority)entry.GetLevel(); + Y_VERIFY(LogSettings->SetLevel(prio, component, explanation) == 0); + + if (component == NKikimrServices::GRPC_LIBRARY) { + NConsole::SetGRpcLibraryLogVerbosity(prio); + } } if (entry.HasSamplingLevel()) { Y_VERIFY(LogSettings->SetSamplingLevel((NLog::EPriority)entry.GetSamplingLevel(), component, explanation) == 0); diff --git a/ydb/core/protos/services.proto b/ydb/core/protos/services.proto index e575e1c165a..7f385a7310a 100644 --- a/ydb/core/protos/services.proto +++ b/ydb/core/protos/services.proto @@ -156,6 +156,7 @@ enum EServiceKikimr { GRPC_PROXY_NO_CONNECT_ACCESS = 417; READ_TABLE_API = 414; // deprecated, use RPC_REQUEST RPC_REQUEST = 416; + GRPC_LIBRARY = 418; // KEY VALUE section KEYVALUE = 420; |