aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinnokentii <innokentii@yandex-team.com>2023-01-25 14:35:36 +0300
committerinnokentii <innokentii@yandex-team.com>2023-01-25 14:35:36 +0300
commitc82bf5bd4f14e4b564537b009e78e549e888976a (patch)
tree41936f6d0d6ec43784569879bbe75b00d17be108
parent5c1d7760d1cf7316ec8683a71995dfa40dc1c88a (diff)
downloadydb-c82bf5bd4f14e4b564537b009e78e549e888976a.tar.gz
Add labels to ydb node,
add labels to node,
-rw-r--r--ydb/core/cms/cms_ut_common.cpp3
-rw-r--r--ydb/core/cms/console/configs_dispatcher.cpp20
-rw-r--r--ydb/core/cms/console/configs_dispatcher.h2
-rw-r--r--ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp13
-rw-r--r--ydb/core/driver_lib/run/config.h2
-rw-r--r--ydb/core/driver_lib/run/config_parser.cpp1
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.cpp3
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.h3
-rw-r--r--ydb/core/testlib/tenant_runtime.cpp2
-rw-r--r--ydb/core/testlib/test_client.cpp2
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);
}