diff options
author | innokentii <innokentii@yandex-team.com> | 2023-01-25 14:35:36 +0300 |
---|---|---|
committer | innokentii <innokentii@yandex-team.com> | 2023-01-25 14:35:36 +0300 |
commit | c82bf5bd4f14e4b564537b009e78e549e888976a (patch) | |
tree | 41936f6d0d6ec43784569879bbe75b00d17be108 | |
parent | 5c1d7760d1cf7316ec8683a71995dfa40dc1c88a (diff) | |
download | ydb-c82bf5bd4f14e4b564537b009e78e549e888976a.tar.gz |
Add labels to ydb node,
add labels to node,
-rw-r--r-- | ydb/core/cms/cms_ut_common.cpp | 3 | ||||
-rw-r--r-- | ydb/core/cms/console/configs_dispatcher.cpp | 20 | ||||
-rw-r--r-- | ydb/core/cms/console/configs_dispatcher.h | 2 | ||||
-rw-r--r-- | ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp | 13 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/config.h | 2 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/config_parser.cpp | 1 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.cpp | 3 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.h | 3 | ||||
-rw-r--r-- | ydb/core/testlib/tenant_runtime.cpp | 2 | ||||
-rw-r--r-- | ydb/core/testlib/test_client.cpp | 2 |
10 files changed, 41 insertions, 10 deletions
diff --git a/ydb/core/cms/cms_ut_common.cpp b/ydb/core/cms/cms_ut_common.cpp index 52e6edc0db..2341cd3275 100644 --- a/ydb/core/cms/cms_ut_common.cpp +++ b/ydb/core/cms/cms_ut_common.cpp @@ -49,6 +49,7 @@ void TFakeNodeWhiteboardService::Handle(TEvConfigsDispatcher::TEvGetConfigReques resp->Config = std::make_shared<NKikimrConfig::TAppConfig>(appConfig); ctx.Send(ev->Sender, resp.Release(), 0, ev->Cookie); } + void TFakeNodeWhiteboardService::Handle(TEvBlobStorage::TEvControllerConfigRequest::TPtr &ev, const TActorContext &ctx) { @@ -497,7 +498,7 @@ static void SetupServices(TTestActorRuntime &runtime, NKikimrConfig::TAppConfig appConfig; appConfig.MutableBootstrapConfig()->CopyFrom(TFakeNodeWhiteboardService::BootstrapConfig); runtime.AddLocalService(MakeConfigsDispatcherID(runtime.GetNodeId(0)), - TActorSetupCmd(CreateConfigsDispatcher(appConfig), TMailboxType::Simple, 0), 0); + TActorSetupCmd(CreateConfigsDispatcher(appConfig, {}), TMailboxType::Simple, 0), 0); runtime.Initialize(app.Unwrap()); auto dnsConfig = new TDynamicNameserviceConfig(); diff --git a/ydb/core/cms/console/configs_dispatcher.cpp b/ydb/core/cms/console/configs_dispatcher.cpp index 7f6edf4232..9a125724d3 100644 --- a/ydb/core/cms/console/configs_dispatcher.cpp +++ b/ydb/core/cms/console/configs_dispatcher.cpp @@ -81,7 +81,7 @@ public: return NKikimrServices::TActivity::CONFIGS_DISPATCHER_ACTOR; } - TConfigsDispatcher(const NKikimrConfig::TAppConfig &config); + TConfigsDispatcher(const NKikimrConfig::TAppConfig &config, const TMap<TString, TString> &labels); void Bootstrap(); @@ -222,6 +222,7 @@ public: } private: + TMap<TString, TString> Labels; TDeque<TAutoPtr<IEventHandle>> EventsQueue; NKikimrConfig::TAppConfig InitialConfig; NKikimrConfig::TAppConfig CurrentConfig; @@ -243,8 +244,9 @@ private: THashMap<TDynBitMap, std::shared_ptr<NKikimrConfig::TAppConfig>> ConfigsCache; }; -TConfigsDispatcher::TConfigsDispatcher(const NKikimrConfig::TAppConfig &config) - : InitialConfig(config) +TConfigsDispatcher::TConfigsDispatcher(const NKikimrConfig::TAppConfig &config, const TMap<TString, TString> &labels) + : Labels(labels) + , InitialConfig(config) , CurrentConfig(config) , NextRequestCookie(Now().GetValue()) { @@ -623,6 +625,14 @@ void TConfigsDispatcher::Handle(NMon::TEvHttpInfo::TPtr &ev) str << "Maintained tenant: " << JoinSeq(", ", CurrentTenants); } DIV_CLASS("tab-left") { + COLLAPSED_REF_CONTENT("node-labels", "Node labels") { + PRE() { + for (auto& [key, value] : Labels) { + str << key << " = " << value << Endl; + } + } + } + str << "<br />" << Endl; COLLAPSED_REF_CONTENT("current-config", "Current config") { NHttp::OutputConfigHTML(str, CurrentConfig); } @@ -936,9 +946,9 @@ void TConfigsDispatcher::Handle(TEvTenantPool::TEvTenantPoolStatus::TPtr &ev) } // anonymous namespace -IActor *CreateConfigsDispatcher(const NKikimrConfig::TAppConfig &config) +IActor *CreateConfigsDispatcher(const NKikimrConfig::TAppConfig &config, const TMap<TString, TString> &labels) { - return new TConfigsDispatcher(config); + return new TConfigsDispatcher(config, labels); } } // namespace NKikimr::NConsole diff --git a/ydb/core/cms/console/configs_dispatcher.h b/ydb/core/cms/console/configs_dispatcher.h index 8d1cf08d64..a1511eecd6 100644 --- a/ydb/core/cms/console/configs_dispatcher.h +++ b/ydb/core/cms/console/configs_dispatcher.h @@ -87,7 +87,7 @@ struct TEvConfigsDispatcher { * are compared to the current one and notifications are not sent to local * subscribers if there is no config modification detected. */ -IActor *CreateConfigsDispatcher(const NKikimrConfig::TAppConfig &config); +IActor *CreateConfigsDispatcher(const NKikimrConfig::TAppConfig &config, const TMap<TString, TString> &labels); inline TActorId MakeConfigsDispatcherID(ui32 node = 0) { char x[12] = { 'c', 'o', 'n', 'f', 'i', 'g', 's', 'd', 'i', 's', 'p' }; diff --git a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp index 34c1e50544..1757d453cd 100644 --- a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp +++ b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp @@ -254,6 +254,12 @@ protected: config.Opts->AddLongOption("hierarchic-cfg", "Use hierarchical approach for configuration parts overriding") .NoArgument().SetFlag(&HierarchicalCfg); + config.Opts->AddLongOption("label", "labels for this node") + .Optional().RequiredArgument("KEY=VALUE") + .KVHandler([&](TString key, TString val) { + RunConfig.Labels[key] = val; + }); + config.SetFreeArgsMin(0); config.Opts->SetFreeArgDefaultTitle("PATH", "path to protobuf file; files are merged in order in which they are enlisted"); } @@ -681,6 +687,13 @@ protected: messageBusConfig->SetStartTracingBusProxy(!!TracePath); messageBusConfig->SetTracePath(TracePath); } + + RunConfig.Labels["node_id"] = ToString(NodeId); + RunConfig.Labels["node_host"] = FQDNHostName(); + RunConfig.Labels["tenant"] = RunConfig.TenantName; + // will be replaced with proper version info + RunConfig.Labels["branch"] = GetBranch(); + RunConfig.Labels["rev"] = ToString(GetProgramSvnRevision()); } inline bool LoadConfigFromCMS() { diff --git a/ydb/core/driver_lib/run/config.h b/ydb/core/driver_lib/run/config.h index 72d7141c92..c6886b3208 100644 --- a/ydb/core/driver_lib/run/config.h +++ b/ydb/core/driver_lib/run/config.h @@ -112,6 +112,8 @@ struct TKikimrRunConfig { TString TenantName; TBasicKikimrServicesMask ServicesMask; + TMap<TString, TString> Labels; + TKikimrRunConfig(NKikimrConfig::TAppConfig& appConfig, ui32 nodeId = 0, const TKikimrScopeId& scopeId = {}); }; diff --git a/ydb/core/driver_lib/run/config_parser.cpp b/ydb/core/driver_lib/run/config_parser.cpp index f00f7d5760..7b4a44387b 100644 --- a/ydb/core/driver_lib/run/config_parser.cpp +++ b/ydb/core/driver_lib/run/config_parser.cpp @@ -223,6 +223,7 @@ void TRunCommandConfigParser::ParseConfigFiles(const NLastGetopt::TOptsParseResu } void TRunCommandConfigParser::SetupGlobalOpts(NLastGetopt::TOpts& opts) { + opts.AddLongOption("cluster-name", "which cluster this node belongs to") .DefaultValue("unknown").OptionalArgument("STR").StoreResult(&GlobalOpts.ClusterName); opts.AddLongOption("log-level", "default logging level").OptionalArgument("1-7") diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index cfedff948a..99fdf43a85 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp @@ -2242,11 +2242,12 @@ void THttpProxyServiceInitializer::InitializeServices(NActors::TActorSystemSetup TConfigsDispatcherInitializer::TConfigsDispatcherInitializer(const TKikimrRunConfig& runConfig) : IKikimrServicesInitializer(runConfig) + , Labels(runConfig.Labels) { } void TConfigsDispatcherInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) { - IActor* actor = NConsole::CreateConfigsDispatcher(Config); + IActor* actor = NConsole::CreateConfigsDispatcher(Config, Labels); setup->LocalServices.push_back(std::pair<TActorId, TActorSetupCmd>( NConsole::MakeConfigsDispatcherID(NodeId), TActorSetupCmd(actor, TMailboxType::HTSwap, appData->UserPoolId))); diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.h b/ydb/core/driver_lib/run/kikimr_services_initializers.h index 3e81498d02..6a91bb2430 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.h +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.h @@ -444,6 +444,9 @@ public: TConfigsDispatcherInitializer(const TKikimrRunConfig& runConfig); void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override; + +private: + TMap<TString, TString> Labels; }; class TConfigsCacheInitializer : public IKikimrServicesInitializer { diff --git a/ydb/core/testlib/tenant_runtime.cpp b/ydb/core/testlib/tenant_runtime.cpp index 78d5d2ee45..90d1abfef5 100644 --- a/ydb/core/testlib/tenant_runtime.cpp +++ b/ydb/core/testlib/tenant_runtime.cpp @@ -1004,7 +1004,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) // Create other local services for (size_t i = 0; i < Config.Nodes.size(); ++i) { if (Config.CreateConfigsDispatcher) { - auto aid = Register(CreateConfigsDispatcher(Extension)); + auto aid = Register(CreateConfigsDispatcher(Extension, {})); EnableScheduleForActor(aid, true); RegisterService(MakeConfigsDispatcherID(GetNodeId(0)), aid, 0); } diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp index 987c7370f6..fadef0571b 100644 --- a/ydb/core/testlib/test_client.cpp +++ b/ydb/core/testlib/test_client.cpp @@ -683,7 +683,7 @@ namespace Tests { TMailboxType::Revolving, 0); Runtime->RegisterService(MakeTenantPoolRootID(), poolId, nodeIdx); if (Settings->EnableConfigsDispatcher) { - auto *dispatcher = NConsole::CreateConfigsDispatcher(Settings->AppConfig); + auto *dispatcher = NConsole::CreateConfigsDispatcher(Settings->AppConfig, {}); auto aid = Runtime->Register(dispatcher, nodeIdx, appData.SystemPoolId, TMailboxType::Revolving, 0); Runtime->RegisterService(NConsole::MakeConfigsDispatcherID(Runtime->GetNodeId(nodeIdx)), aid); } |