aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrew-rykov <arykov@ydb.tech>2023-03-02 17:58:27 +0300
committerandrew-rykov <arykov@ydb.tech>2023-03-02 17:58:27 +0300
commit17ea27a957c0c9d02155009a458e348f186be60d (patch)
treec5b792d18bf8f9a2f5e0f33fb3b3c2ccc0cc2c30
parent9a024452fbd14773e9b17693833e41b062a31742 (diff)
downloadydb-17ea27a957c0c9d02155009a458e348f186be60d.tar.gz
enabling grpc debug log
enabling grpc debug log
-rw-r--r--ydb/core/cms/console/CMakeLists.darwin.txt1
-rw-r--r--ydb/core/cms/console/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/cms/console/CMakeLists.linux.txt1
-rw-r--r--ydb/core/cms/console/grpc_library_helper.cpp45
-rw-r--r--ydb/core/cms/console/grpc_library_helper.h12
-rw-r--r--ydb/core/cms/console/log_settings_configurator.cpp5
-rw-r--r--ydb/core/driver_lib/run/run.cpp10
-rw-r--r--ydb/core/protos/services.proto1
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;