Skip to content

Commit 59b0201

Browse files
authored
Use SlotName as host label in metrics (#2654)
1 parent 6c891d7 commit 59b0201

File tree

6 files changed

+37
-5
lines changed

6 files changed

+37
-5
lines changed

ydb/core/config/init/init.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ class TDefaultNodeBrokerClient
166166
nodeInfo.SetAddress(node.Address);
167167
nodeInfo.SetExpire(node.Expire);
168168
NConfig::CopyNodeLocation(nodeInfo.MutableLocation(), node.Location);
169+
nodeInfo.SetSlotName(result.GetSlotName());
169170
} else {
170171
auto &info = *nsConfig.AddNode();
171172
info.SetNodeId(node.NodeId);

ydb/core/config/init/init_impl.h

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,23 @@ struct TCommonAppOptions {
596596
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::TenantPoolConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
597597
}
598598

599-
if (TenantName && InterconnectPort != DefaultInterconnectPort) {
600-
appConfig.MutableMonitoringConfig()->SetHostLabelOverride(HostAndICPort(env));
599+
if (TenantName) {
600+
if (appConfig.GetDynamicNodeConfig().GetNodeInfo().HasSlotName()) {
601+
const TString& slotName = appConfig.GetDynamicNodeConfig().GetNodeInfo().GetSlotName();
602+
appConfig.MutableMonitoringConfig()->SetHostLabelOverride(slotName);
603+
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::MonitoringConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
604+
} else if (InterconnectPort != DefaultInterconnectPort) {
605+
appConfig.MutableMonitoringConfig()->SetHostLabelOverride(HostAndICPort(env));
606+
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::MonitoringConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
607+
}
608+
}
609+
610+
if (TenantName) {
611+
if (InterconnectPort == DefaultInterconnectPort) {
612+
appConfig.MutableMonitoringConfig()->SetProcessLocation(Host(env));
613+
} else {
614+
appConfig.MutableMonitoringConfig()->SetProcessLocation(HostAndICPort(env));
615+
}
601616
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::MonitoringConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
602617
}
603618

@@ -685,10 +700,17 @@ struct TCommonAppOptions {
685700
}
686701

687702
TString HostAndICPort(IEnv& env) const {
703+
auto hostname = Host(env);
704+
if (!hostname) {
705+
return "";
706+
}
707+
return TStringBuilder() << hostname << ":" << InterconnectPort;
708+
}
709+
710+
TString Host(IEnv& env) const {
688711
try {
689712
auto hostname = to_lower(env.HostName());
690-
hostname = hostname.substr(0, hostname.find('.'));
691-
return TStringBuilder() << hostname << ":" << InterconnectPort;
713+
return hostname.substr(0, hostname.find('.'));
692714
} catch (TSystemError& error) {
693715
return "";
694716
}

ydb/core/driver_lib/run/kikimr_services_initializers.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2116,7 +2116,7 @@ void TKqpServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setu
21162116

21172117
auto kqpProxySharedResources = std::make_shared<NKqp::TKqpProxySharedResources>();
21182118

2119-
// Crate resource manager
2119+
// Create resource manager
21202120
auto rm = NKqp::CreateKqpResourceManagerActor(Config.GetTableServiceConfig().GetResourceManager(), nullptr,
21212121
{}, kqpProxySharedResources);
21222122
setup->LocalServices.push_back(std::make_pair(

ydb/public/api/protos/ydb_discovery.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ message NodeRegistrationResult {
103103
repeated NodeInfo nodes = 4;
104104
optional uint64 scope_tablet_id = 5;
105105
optional uint64 scope_path_id = 6;
106+
// A unique name within the tenant generated by the system
107+
optional string slot_name = 7;
106108
}
107109

108110
message NodeRegistrationResponse {

ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ TNodeRegistrationResult::TNodeRegistrationResult(TStatus&& status, const Ydb::Di
8686
, Expire_(proto.expire())
8787
, ScopeTableId_(proto.has_scope_tablet_id() ? std::make_optional(proto.scope_tablet_id()) : std::nullopt)
8888
, ScopePathId_(proto.has_scope_path_id() ? std::make_optional(proto.scope_path_id()) : std::nullopt)
89+
, SlotName_(proto.slot_name())
8990
{
9091
const auto& nodes = proto.nodes();
9192
Nodes_.reserve(nodes.size());
@@ -122,6 +123,10 @@ bool TNodeRegistrationResult::HasScopePathId() const {
122123
return ScopePathId_.value();
123124
}
124125

126+
const TString& TNodeRegistrationResult::GetSlotName() const {
127+
return SlotName_;
128+
}
129+
125130
const TVector<TNodeInfo>& TNodeRegistrationResult::GetNodes() const {
126131
return Nodes_;
127132
}

ydb/public/sdk/cpp/client/ydb_discovery/discovery.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ class TNodeRegistrationResult : public TStatus {
109109
bool HasScopeTabletId() const;
110110
const ui64& GetScopePathId() const;
111111
bool HasScopePathId() const;
112+
const TString& GetSlotName() const;
112113
const TVector<TNodeInfo>& GetNodes() const;
113114

114115
private:
@@ -117,6 +118,7 @@ class TNodeRegistrationResult : public TStatus {
117118
ui64 Expire_;
118119
std::optional<ui64> ScopeTableId_;
119120
std::optional<ui64> ScopePathId_;
121+
TString SlotName_;
120122
TVector<TNodeInfo> Nodes_;
121123
};
122124

0 commit comments

Comments
 (0)