diff options
author | andrew-rykov <arykov@ydb.tech> | 2023-02-10 18:25:24 +0300 |
---|---|---|
committer | andrew-rykov <arykov@ydb.tech> | 2023-02-10 18:25:24 +0300 |
commit | 130ad005b33e752ab1cb4933124cb380ebc5ca00 (patch) | |
tree | cbc0dbe8a1a65790b953eef66dc81a3404d5f791 | |
parent | 1e14f60b6a23408d457789db770a7e8f6718f1ec (diff) | |
download | ydb-130ad005b33e752ab1cb4933124cb380ebc5ca00.tar.gz |
added unified-agent to metering
removed factories argument
metering unified agent 2
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.cpp | 20 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.h | 5 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/run.cpp | 2 | ||||
-rw-r--r-- | ydb/core/log_backend/log_backend.cpp | 38 | ||||
-rw-r--r-- | ydb/core/log_backend/log_backend.h | 4 | ||||
-rw-r--r-- | ydb/core/protos/config.proto | 2 |
6 files changed, 52 insertions, 19 deletions
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index 2036c12d5b3..dc75e2ed254 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp @@ -2326,24 +2326,15 @@ void TSysViewServiceInitializer::InitializeServices(NActors::TActorSystemSetup* TMeteringWriterInitializer::TMeteringWriterInitializer(const TKikimrRunConfig &runConfig) : IKikimrServicesInitializer(runConfig) + , KikimrRunConfig(runConfig) { } void TMeteringWriterInitializer::InitializeServices(TActorSystemSetup* setup, const TAppData* appData) { - if (!Config.HasMeteringConfig() || !Config.GetMeteringConfig().HasMeteringFilePath()) { - return; - } - - const auto& filePath = Config.GetMeteringConfig().GetMeteringFilePath(); - - THolder<TFileLogBackend> fileBackend; - try { - fileBackend = MakeHolder<TFileLogBackend>(filePath); - } catch (const TFileError& ex) { - Cerr << "TMeteringWriterInitializer: failed to open file '" << filePath << "': " << ex.what() << Endl; - exit(1); - } + auto fileBackend = CreateMeteringLogBackendWithUnifiedAgent(KikimrRunConfig, appData->Counters); + if (!fileBackend) + return; auto actor = NMetering::CreateMeteringWriter(std::move(fileBackend)); @@ -2352,9 +2343,8 @@ void TMeteringWriterInitializer::InitializeServices(TActorSystemSetup* setup, co TActorSetupCmd(actor.Release(), TMailboxType::HTSwap, appData->IOPoolId))); } -TAuditWriterInitializer::TAuditWriterInitializer(const TKikimrRunConfig &runConfig, std::shared_ptr<TModuleFactories> factories) +TAuditWriterInitializer::TAuditWriterInitializer(const TKikimrRunConfig &runConfig) : IKikimrServicesInitializer(runConfig) - , Factories(factories) , KikimrRunConfig(runConfig) { } diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.h b/ydb/core/driver_lib/run/kikimr_services_initializers.h index 6a91bb24301..14855b48900 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.h +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.h @@ -484,15 +484,16 @@ public: TMeteringWriterInitializer(const TKikimrRunConfig& runConfig); void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override; +private: + const TKikimrRunConfig& KikimrRunConfig; }; class TAuditWriterInitializer : public IKikimrServicesInitializer { public: - TAuditWriterInitializer(const TKikimrRunConfig& runConfig, std::shared_ptr<TModuleFactories> factories); + TAuditWriterInitializer(const TKikimrRunConfig& runConfig); void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override; private: - std::shared_ptr<TModuleFactories> Factories; const TKikimrRunConfig& KikimrRunConfig; }; diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index 1f73ffea885..ff5a8ce935f 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -1479,7 +1479,7 @@ TIntrusivePtr<TServiceInitializersList> TKikimrRunner::CreateServiceInitializers } if (serviceMask.EnableAuditWriter) { - sil->AddServiceInitializer(new TAuditWriterInitializer(runConfig, ModuleFactories)); + sil->AddServiceInitializer(new TAuditWriterInitializer(runConfig)); } if (serviceMask.EnableLongTxService) { diff --git a/ydb/core/log_backend/log_backend.cpp b/ydb/core/log_backend/log_backend.cpp index 7a5b9709860..aeeabfaf287 100644 --- a/ydb/core/log_backend/log_backend.cpp +++ b/ydb/core/log_backend/log_backend.cpp @@ -26,6 +26,42 @@ TAutoPtr<TLogBackend> CreateLogBackendWithUnifiedAgent( return NActors::CreateStderrBackend(); } +TAutoPtr<TLogBackend> CreateMeteringLogBackendWithUnifiedAgent( + const TKikimrRunConfig& runConfig, + NMonitoring::TDynamicCounterPtr counters) +{ + TAutoPtr<TLogBackend> logBackend; + if (!runConfig.AppConfig.HasMeteringConfig()) + return logBackend; + + const auto& meteringConfig = runConfig.AppConfig.GetMeteringConfig(); + if (meteringConfig.HasMeteringFilePath()) { + const auto& filePath = meteringConfig.GetMeteringFilePath(); + try { + logBackend = new TFileLogBackend(filePath); + } catch (const TFileError& ex) { + Cerr << "CreateMeteringLogBackendWithUnifiedAgent: failed to open file '" << filePath << "': " << ex.what() << Endl; + exit(1); + } + } + + if (meteringConfig.GetUnifiedAgentEnable() && runConfig.AppConfig.HasLogConfig() && runConfig.AppConfig.GetLogConfig().HasUAClientConfig()) { + const auto& logConfig = runConfig.AppConfig.GetLogConfig(); + const auto& uaClientConfig = logConfig.GetUAClientConfig(); + auto uaCounters = GetServiceCounters(counters, "utils")->GetSubgroup("subsystem", "ua_client"); + auto logName = meteringConfig.HasLogName() + ? meteringConfig.GetLogName() + : uaClientConfig.GetLogName(); + TAutoPtr<TLogBackend> uaLogBackend = TLogBackendBuildHelper::CreateLogBackendFromUAClientConfig(uaClientConfig, uaCounters, logName); + logBackend = logBackend ? NActors::CreateCompositeLogBackend({logBackend, uaLogBackend}) : uaLogBackend; + } + + if (logBackend) { + return logBackend; + } + return NActors::CreateStderrBackend(); +} + TAutoPtr<TLogBackend> CreateAuditLogBackendWithUnifiedAgent( const TKikimrRunConfig& runConfig, NMonitoring::TDynamicCounterPtr counters) @@ -40,7 +76,7 @@ TAutoPtr<TLogBackend> CreateAuditLogBackendWithUnifiedAgent( try { logBackend = new TFileLogBackend(filePath); } catch (const TFileError& ex) { - Cerr << "TAuditLogBackendFactoryWithUnifiedAgent: failed to open file '" << filePath << "': " << ex.what() << Endl; + Cerr << "CreateAuditLogBackendWithUnifiedAgent: failed to open file '" << filePath << "': " << ex.what() << Endl; exit(1); } } diff --git a/ydb/core/log_backend/log_backend.h b/ydb/core/log_backend/log_backend.h index f9de92f39bd..aa681adc2fc 100644 --- a/ydb/core/log_backend/log_backend.h +++ b/ydb/core/log_backend/log_backend.h @@ -10,6 +10,10 @@ TAutoPtr<TLogBackend> CreateLogBackendWithUnifiedAgent( const TKikimrRunConfig& runConfig, NMonitoring::TDynamicCounterPtr counters); +TAutoPtr<TLogBackend> CreateMeteringLogBackendWithUnifiedAgent( + const TKikimrRunConfig& runConfig, + NMonitoring::TDynamicCounterPtr counters); + TAutoPtr<TLogBackend> CreateAuditLogBackendWithUnifiedAgent( const TKikimrRunConfig& runConfig, NMonitoring::TDynamicCounterPtr counters); diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto index a3d1e3184c3..7d86fe99f75 100644 --- a/ydb/core/protos/config.proto +++ b/ydb/core/protos/config.proto @@ -1417,6 +1417,8 @@ message TImmediateControlsConfig { message TMeteringConfig { optional string MeteringFilePath = 1; repeated string SystemBackupSIDs = 2; + optional string LogName = 3; + optional bool UnifiedAgentEnable = 4 [default = false]; }; message TAuditConfig { |