diff options
author | dinmukhammed <dinmukhammed@yandex-team.ru> | 2022-02-08 18:41:02 +0300 |
---|---|---|
committer | dinmukhammed <dinmukhammed@yandex-team.ru> | 2022-02-08 18:41:02 +0300 |
commit | ee2eb24b50fd4b9ec4a1af87614303850a2b90d3 (patch) | |
tree | 57a37b221e33e59ee685c1da609951a391a27693 | |
parent | a3ac8a71f16e0db7d50d5b1235466ff754e0d228 (diff) | |
download | ydb-ee2eb24b50fd4b9ec4a1af87614303850a2b90d3.tar.gz |
YQ-830 Using ActorSystem for YQ logging
Use actorSystem for logging
ref:9fa574efac22c0e7d1eed08d4083566fac881387
-rw-r--r-- | ydb/core/yq/libs/actors/pending_fetcher.cpp | 5 | ||||
-rw-r--r-- | ydb/core/yq/libs/actors/run_actor.cpp | 4 | ||||
-rw-r--r-- | ydb/core/yq/libs/init/init.cpp | 2 | ||||
-rw-r--r-- | ydb/library/yql/utils/actor_log/log.cpp | 17 | ||||
-rw-r--r-- | ydb/library/yql/utils/actor_log/log.h | 25 |
5 files changed, 37 insertions, 16 deletions
diff --git a/ydb/core/yq/libs/actors/pending_fetcher.cpp b/ydb/core/yq/libs/actors/pending_fetcher.cpp index 6193fa3d44..0095963c8f 100644 --- a/ydb/core/yq/libs/actors/pending_fetcher.cpp +++ b/ydb/core/yq/libs/actors/pending_fetcher.cpp @@ -154,6 +154,7 @@ public: Send(SelfId(), new NActors::TEvents::TEvWakeup()); LOG_I("STARTED"); + LogScope.ConstructInPlace(NActors::TActivationContext::ActorSystem(), NKikimrServices::YQL_PROXY, Guid); } private: @@ -263,7 +264,7 @@ private: ClientCounters); NDq::SetYqlLogLevels(NActors::NLog::PRI_TRACE); - Register(new NDq::TLogWrapReceive(CreateRunActor(ServiceCounters, std::move(params)), Guid)); + Register(CreateRunActor(ServiceCounters, std::move(params))); } STRICT_STFUNC( @@ -302,6 +303,8 @@ private: const TString Guid; //OwnerId const NMonitoring::TDynamicCounterPtr ClientCounters; TPrivateClient Client; + + TMaybe<NYql::NLog::TScopedBackend<NYql::NDq::TYqlLogScope>> LogScope; }; diff --git a/ydb/core/yq/libs/actors/run_actor.cpp b/ydb/core/yq/libs/actors/run_actor.cpp index cb14422d2d..5549f8f254 100644 --- a/ydb/core/yq/libs/actors/run_actor.cpp +++ b/ydb/core/yq/libs/actors/run_actor.cpp @@ -874,11 +874,9 @@ private: columns.emplace_back(column); } resultId = NActors::TActivationContext::Register( - new NDq::TLogWrapReceive( CreateResultWriter( Params.Driver, ExecuterId, dqGraphParams.GetResultType(), Params.PrivateApiConfig, - writerResultId, columns, dqGraphParams.GetSession(), Params.Deadline, Params.ClientCounters) - , dqGraphParams.GetSession())); + writerResultId, columns, dqGraphParams.GetSession(), Params.Deadline, Params.ClientCounters)); } else { LOG_D("ResultWriter was NOT CREATED since ResultType is empty"); resultId = ExecuterId; diff --git a/ydb/core/yq/libs/init/init.cpp b/ydb/core/yq/libs/init/init.cpp index 23f748fd68..d66ac202bf 100644 --- a/ydb/core/yq/libs/init/init.cpp +++ b/ydb/core/yq/libs/init/init.cpp @@ -209,7 +209,7 @@ void Init( lwmOptions.MkqlInitialMemoryLimit = mkqlInitialMemoryLimit; lwmOptions.MkqlTotalMemoryLimit = mkqlTotalMemoryLimit; lwmOptions.MkqlMinAllocSize = mkqlAllocSize; - auto resman = new NYql::NDq::TLogWrapReceive(NYql::NDqs::CreateLocalWorkerManager(lwmOptions), ""); + auto resman = NYql::NDqs::CreateLocalWorkerManager(lwmOptions); actorRegistrator(NYql::NDqs::MakeWorkerManagerActorID(nodeId), resman); } diff --git a/ydb/library/yql/utils/actor_log/log.cpp b/ydb/library/yql/utils/actor_log/log.cpp index a603b4ca99..3b3002208c 100644 --- a/ydb/library/yql/utils/actor_log/log.cpp +++ b/ydb/library/yql/utils/actor_log/log.cpp @@ -57,13 +57,16 @@ NYql::NLog::ELevel GetYqlLogLevel(NActors::NLog::EPriority priority) { } // namespace void TActorYqlLogBackend::WriteData(const TLogRecord& rec) { - if (TraceId.empty()) { - LOG_LOG(ActorCtx, GetActorLogPriority(rec.Priority), Component, - "SessionId: %s %.*s", SessionId.c_str(), (int)rec.Len, rec.Data); - } else { - LOG_LOG(ActorCtx, GetActorLogPriority(rec.Priority), Component, - "TraceId: %s, SessionId: %s %.*s", TraceId.c_str(), SessionId.c_str(), (int)rec.Len, rec.Data); - } + std::visit([&](const auto* actorCtxOrSystem){ + Y_VERIFY(actorCtxOrSystem); + if (TraceId.empty()) { + LOG_LOG(*actorCtxOrSystem, GetActorLogPriority(rec.Priority), Component, + "SessionId: %s %.*s", SessionId.c_str(), (int)rec.Len, rec.Data); + } else { + LOG_LOG(*actorCtxOrSystem, GetActorLogPriority(rec.Priority), Component, + "TraceId: %s, SessionId: %s %.*s", TraceId.c_str(), SessionId.c_str(), (int)rec.Len, rec.Data); + } + }, ActorCtxOrSystem); } void SetYqlLogLevels(const NActors::NLog::EPriority& priority) { diff --git a/ydb/library/yql/utils/actor_log/log.h b/ydb/library/yql/utils/actor_log/log.h index 17bf5eafee..08d525d28b 100644 --- a/ydb/library/yql/utils/actor_log/log.h +++ b/ydb/library/yql/utils/actor_log/log.h @@ -11,8 +11,22 @@ namespace NDq { class TActorYqlLogBackend : public TLogBackend { public: - TActorYqlLogBackend(const NActors::TActorContext &actorCtx, int component, const TString& sessionId, const TString& traceId) - : ActorCtx(actorCtx) + TActorYqlLogBackend( + const NActors::TActorContext& actorCtx, + int component, + const TString& sessionId, + const TString& traceId) + : ActorCtxOrSystem(&actorCtx) + , Component(component) + , SessionId(sessionId) + , TraceId(traceId) {} + + TActorYqlLogBackend( + const NActors::TActorSystem* actorSystem, + int component, + const TString& sessionId, + const TString& traceId) + : ActorCtxOrSystem(actorSystem) , Component(component) , SessionId(sessionId) , TraceId(traceId) {} @@ -21,7 +35,7 @@ public: void ReopenLog() override {} private: - const NActors::TActorContext& ActorCtx; + std::variant<const NActors::TActorContext*, const NActors::TActorSystem*> ActorCtxOrSystem; int Component; TString SessionId; TString TraceId; @@ -29,8 +43,11 @@ private: class TYqlLogScope : public NYql::NLog::TScopedBackend<TActorYqlLogBackend> { public: - TYqlLogScope(const NActors::TActorContext &actorCtx, int component, const TString& sessionId, const TString& traceId = "") + TYqlLogScope(const NActors::TActorContext& actorCtx, int component, const TString& sessionId, const TString& traceId = "") : NYql::NLog::TScopedBackend<TActorYqlLogBackend>(actorCtx, component, sessionId, traceId) {}; + + TYqlLogScope(const NActors::TActorSystem* actorSystem, int component, const TString& sessionId, const TString& traceId = "") + : NYql::NLog::TScopedBackend<TActorYqlLogBackend>(actorSystem, component, sessionId, traceId) {}; }; class TLogWrapReceive: public NActors::TDecorator { |