aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrew-rykov <arykov@ydb.tech>2023-02-10 18:25:24 +0300
committerandrew-rykov <arykov@ydb.tech>2023-02-10 18:25:24 +0300
commit130ad005b33e752ab1cb4933124cb380ebc5ca00 (patch)
treecbc0dbe8a1a65790b953eef66dc81a3404d5f791
parent1e14f60b6a23408d457789db770a7e8f6718f1ec (diff)
downloadydb-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.cpp20
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.h5
-rw-r--r--ydb/core/driver_lib/run/run.cpp2
-rw-r--r--ydb/core/log_backend/log_backend.cpp38
-rw-r--r--ydb/core/log_backend/log_backend.h4
-rw-r--r--ydb/core/protos/config.proto2
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 {