Skip to content

Commit 730feb9

Browse files
committed
AI adaptation (#18874)
1 parent 98affd2 commit 730feb9

File tree

6 files changed

+145
-299
lines changed

6 files changed

+145
-299
lines changed

ydb/core/viewer/json_pipe_req.cpp

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -594,20 +594,24 @@ TViewerPipeClient::TRequestResponse<TEvBlobStorage::TEvControllerSelectGroupsRes
594594
return MakeRequestToPipe<TEvBlobStorage::TEvControllerSelectGroupsResult>(pipeClient, request.Release(), cookie);
595595
}
596596

597-
void TViewerPipeClient::RequestBSControllerPDiskRestart(ui32 nodeId, ui32 pdiskId, bool force) {
598-
TActorId pipeClient = ConnectTabletPipe(GetBSControllerId());
597+
TViewerPipeClient::TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> TViewerPipeClient::RequestBSControllerPDiskRestart(ui32 nodeId, ui32 pdiskId, bool force) {
599598
THolder<TEvBlobStorage::TEvControllerConfigRequest> request = MakeHolder<TEvBlobStorage::TEvControllerConfigRequest>();
600599
auto* restartPDisk = request->Record.MutableRequest()->AddCommand()->MutableRestartPDisk();
601600
restartPDisk->MutableTargetPDiskId()->SetNodeId(nodeId);
602601
restartPDisk->MutableTargetPDiskId()->SetPDiskId(pdiskId);
603602
if (force) {
604603
request->Record.MutableRequest()->SetIgnoreDegradedGroupsChecks(true);
605604
}
606-
SendRequestToPipe(pipeClient, request.Release());
605+
auto response = MakeRequestToTablet<TEvBlobStorage::TEvControllerConfigResponse>(GetBSControllerId(), request.Release());
606+
if (response.Span) {
607+
response.Span.Attribute("node_id", nodeId);
608+
response.Span.Attribute("pdisk_id", pdiskId);
609+
response.Span.Attribute("force", force);
610+
}
611+
return response;
607612
}
608613

609-
void TViewerPipeClient::RequestBSControllerVDiskEvict(ui32 groupId, ui32 groupGeneration, ui32 failRealmIdx, ui32 failDomainIdx, ui32 vdiskIdx, bool force) {
610-
TActorId pipeClient = ConnectTabletPipe(GetBSControllerId());
614+
TViewerPipeClient::TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> TViewerPipeClient::RequestBSControllerVDiskEvict(ui32 groupId, ui32 groupGeneration, ui32 failRealmIdx, ui32 failDomainIdx, ui32 vdiskIdx, bool force) {
611615
THolder<TEvBlobStorage::TEvControllerConfigRequest> request = MakeHolder<TEvBlobStorage::TEvControllerConfigRequest>();
612616
auto* evictVDisk = request->Record.MutableRequest()->AddCommand()->MutableReassignGroupDisk();
613617
evictVDisk->SetGroupId(groupId);
@@ -618,7 +622,11 @@ void TViewerPipeClient::RequestBSControllerVDiskEvict(ui32 groupId, ui32 groupGe
618622
if (force) {
619623
request->Record.MutableRequest()->SetIgnoreDegradedGroupsChecks(true);
620624
}
621-
SendRequestToPipe(pipeClient, request.Release());
625+
auto response = MakeRequestToTablet<TEvBlobStorage::TEvControllerConfigResponse>(GetBSControllerId(), request.Release());
626+
if (response.Span) {
627+
response.Span.Attribute("vdisk_id", TStringBuilder() << groupId << '-' << groupGeneration << '-' << failRealmIdx << '-' << failDomainIdx << '-' << vdiskIdx);
628+
}
629+
return response;
622630
}
623631

624632
TViewerPipeClient::TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> TViewerPipeClient::RequestBSControllerPDiskInfo(ui32 nodeId, ui32 pdiskId) {
@@ -746,15 +754,14 @@ TViewerPipeClient::TRequestResponse<NSysView::TEvSysView::TEvGetStorageStatsResp
746754
return RequestBSControllerStorageStats();
747755
}
748756

749-
void TViewerPipeClient::RequestBSControllerPDiskUpdateStatus(const NKikimrBlobStorage::TUpdateDriveStatus& driveStatus, bool force) {
750-
TActorId pipeClient = ConnectTabletPipe(GetBSControllerId());
757+
TViewerPipeClient::TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> TViewerPipeClient::RequestBSControllerPDiskUpdateStatus(const NKikimrBlobStorage::TUpdateDriveStatus& driveStatus, bool force) {
751758
THolder<TEvBlobStorage::TEvControllerConfigRequest> request = MakeHolder<TEvBlobStorage::TEvControllerConfigRequest>();
752759
auto* updateDriveStatus = request->Record.MutableRequest()->AddCommand()->MutableUpdateDriveStatus();
753760
updateDriveStatus->CopyFrom(driveStatus);
754761
if (force) {
755762
request->Record.MutableRequest()->SetIgnoreDegradedGroupsChecks(true);
756763
}
757-
SendRequestToPipe(pipeClient, request.Release());
764+
return MakeRequestToTablet<TEvBlobStorage::TEvControllerConfigResponse>(GetBSControllerId(), request.Release());
758765
}
759766

760767
THolder<NSchemeCache::TSchemeCacheNavigate> TViewerPipeClient::SchemeCacheNavigateRequestBuilder (

ydb/core/viewer/json_pipe_req.h

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -276,36 +276,36 @@ class TViewerPipeClient : public TActorBootstrapped<TViewerPipeClient> {
276276

277277
void UpdateSharedCacheTablet(TTabletId tabletId, std::unique_ptr<IEventBase> request);
278278

279-
TRequestResponse<TEvHive::TEvResponseHiveDomainStats> MakeRequestHiveDomainStats(TTabletId hiveId);
280-
TRequestResponse<TEvHive::TEvResponseHiveStorageStats> MakeRequestHiveStorageStats(TTabletId hiveId);
281-
TRequestResponse<TEvHive::TEvResponseHiveNodeStats> MakeRequestHiveNodeStats(TTabletId hiveId, TEvHive::TEvRequestHiveNodeStats* request);
279+
[[nodiscard]] TRequestResponse<TEvHive::TEvResponseHiveDomainStats> MakeRequestHiveDomainStats(TTabletId hiveId);
280+
[[nodiscard]] TRequestResponse<TEvHive::TEvResponseHiveStorageStats> MakeRequestHiveStorageStats(TTabletId hiveId);
281+
[[nodiscard]] TRequestResponse<TEvHive::TEvResponseHiveNodeStats> MakeRequestHiveNodeStats(TTabletId hiveId, TEvHive::TEvRequestHiveNodeStats* request);
282282
void RequestConsoleListTenants();
283-
TRequestResponse<NConsole::TEvConsole::TEvListTenantsResponse> MakeRequestConsoleListTenants();
284-
TRequestResponse<NConsole::TEvConsole::TEvGetNodeConfigResponse> MakeRequestConsoleNodeConfigByTenant(TString tenant, ui64 cookie = 0);
285-
TRequestResponse<NConsole::TEvConsole::TEvGetAllConfigsResponse> MakeRequestConsoleGetAllConfigs();
283+
[[nodiscard]] TRequestResponse<NConsole::TEvConsole::TEvListTenantsResponse> MakeRequestConsoleListTenants();
284+
[[nodiscard]] TRequestResponse<NConsole::TEvConsole::TEvGetNodeConfigResponse> MakeRequestConsoleNodeConfigByTenant(TString tenant, ui64 cookie = 0);
285+
[[nodiscard]] TRequestResponse<NConsole::TEvConsole::TEvGetAllConfigsResponse> MakeRequestConsoleGetAllConfigs();
286286
void RequestConsoleGetTenantStatus(const TString& path);
287-
TRequestResponse<NConsole::TEvConsole::TEvGetTenantStatusResponse> MakeRequestConsoleGetTenantStatus(const TString& path);
287+
[[nodiscard]] TRequestResponse<NConsole::TEvConsole::TEvGetTenantStatusResponse> MakeRequestConsoleGetTenantStatus(const TString& path);
288288
void RequestBSControllerConfig();
289289
void RequestBSControllerConfigWithStoragePools();
290-
TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> MakeRequestBSControllerConfigWithStoragePools();
290+
[[nodiscard]] TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> MakeRequestBSControllerConfigWithStoragePools();
291291
void RequestBSControllerInfo();
292292
void RequestBSControllerSelectGroups(THolder<TEvBlobStorage::TEvControllerSelectGroups> request);
293-
TRequestResponse<TEvBlobStorage::TEvControllerSelectGroupsResult> MakeRequestBSControllerSelectGroups(THolder<TEvBlobStorage::TEvControllerSelectGroups> request, ui64 cookie = 0);
294-
void RequestBSControllerPDiskRestart(ui32 nodeId, ui32 pdiskId, bool force = false);
295-
void RequestBSControllerVDiskEvict(ui32 groupId, ui32 groupGeneration, ui32 failRealmIdx, ui32 failDomainIdx, ui32 vdiskIdx, bool force = false);
296-
TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> RequestBSControllerPDiskInfo(ui32 nodeId, ui32 pdiskId);
297-
TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> RequestBSControllerVDiskInfo(ui32 nodeId, ui32 pdiskId);
298-
TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse> RequestBSControllerGroups();
299-
TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse> RequestBSControllerPools();
300-
TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> RequestBSControllerVSlots();
301-
TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> RequestBSControllerPDisks();
302-
TRequestResponse<NSysView::TEvSysView::TEvGetStorageStatsResponse> RequestBSControllerStorageStats();
303-
TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse> MakeCachedRequestBSControllerGroups();
304-
TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse> MakeCachedRequestBSControllerPools();
305-
TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> MakeCachedRequestBSControllerVSlots();
306-
TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> MakeCachedRequestBSControllerPDisks();
307-
TRequestResponse<NSysView::TEvSysView::TEvGetStorageStatsResponse> MakeCachedRequestBSControllerStorageStats();
308-
void RequestBSControllerPDiskUpdateStatus(const NKikimrBlobStorage::TUpdateDriveStatus& driveStatus, bool force = false);
293+
[[nodiscard]] TRequestResponse<TEvBlobStorage::TEvControllerSelectGroupsResult> MakeRequestBSControllerSelectGroups(THolder<TEvBlobStorage::TEvControllerSelectGroups> request, ui64 cookie = 0);
294+
[[nodiscard]] TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> RequestBSControllerPDiskRestart(ui32 nodeId, ui32 pdiskId, bool force = false);
295+
[[nodiscard]] TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> RequestBSControllerVDiskEvict(ui32 groupId, ui32 groupGeneration, ui32 failRealmIdx, ui32 failDomainIdx, ui32 vdiskIdx, bool force = false);
296+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> RequestBSControllerPDiskInfo(ui32 nodeId, ui32 pdiskId);
297+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> RequestBSControllerVDiskInfo(ui32 nodeId, ui32 pdiskId);
298+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse> RequestBSControllerGroups();
299+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse> RequestBSControllerPools();
300+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> RequestBSControllerVSlots();
301+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> RequestBSControllerPDisks();
302+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetStorageStatsResponse> RequestBSControllerStorageStats();
303+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse> MakeCachedRequestBSControllerGroups();
304+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse> MakeCachedRequestBSControllerPools();
305+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse> MakeCachedRequestBSControllerVSlots();
306+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetPDisksResponse> MakeCachedRequestBSControllerPDisks();
307+
[[nodiscard]] TRequestResponse<NSysView::TEvSysView::TEvGetStorageStatsResponse> MakeCachedRequestBSControllerStorageStats();
308+
[[nodiscard]] TRequestResponse<TEvBlobStorage::TEvControllerConfigResponse> RequestBSControllerPDiskUpdateStatus(const NKikimrBlobStorage::TUpdateDriveStatus& driveStatus, bool force = false);
309309

310310
THolder<NSchemeCache::TSchemeCacheNavigate> SchemeCacheNavigateRequestBuilder(NSchemeCache::TSchemeCacheNavigate::TEntry&& entry);
311311

ydb/core/viewer/pdisk_info.h

Lines changed: 13 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ class TPDiskInfo : public TViewerPipeClient {
2323
protected:
2424
using TThis = TPDiskInfo;
2525
using TBase = TViewerPipeClient;
26-
ui32 Timeout = 0;
2726
ui32 ActualRetries = 0;
2827
ui32 Retries = 0;
2928
TDuration RetryPeriod = TDuration::MilliSeconds(500);
@@ -42,9 +41,14 @@ class TPDiskInfo : public TViewerPipeClient {
4241
{}
4342

4443
void Bootstrap() override {
45-
const auto& params(Event->Get()->Request.GetParams());
46-
NodeId = FromStringWithDefault<ui32>(params.Get("node_id"), 0);
47-
PDiskId = FromStringWithDefault<ui32>(params.Get("pdisk_id"), Max<ui32>());
44+
TString pDiskId = Params.Get("pdisk_id");
45+
if (pDiskId.Contains('-')) {
46+
PDiskId = FromStringWithDefault<ui32>(TStringBuf(pDiskId).Before('-'), Max<ui32>());
47+
NodeId = FromStringWithDefault<ui32>(TStringBuf(pDiskId).After('-'), 0);
48+
} else {
49+
NodeId = FromStringWithDefault<ui32>(Params.Get("node_id"), 0);
50+
PDiskId = FromStringWithDefault<ui32>(Params.Get("pdisk_id"), Max<ui32>());
51+
}
4852

4953
if (PDiskId == Max<ui32>()) {
5054
return TBase::ReplyAndPassAway(GetHTTPBADREQUEST("text/plain", "field 'pdisk_id' is required"), "BadRequest");
@@ -56,16 +60,13 @@ class TPDiskInfo : public TViewerPipeClient {
5660
if (!NodeId) {
5761
NodeId = TlsActivationContext->ActorSystem()->NodeId;
5862
}
59-
TBase::InitConfig(params);
60-
61-
Timeout = FromStringWithDefault<ui32>(params.Get("timeout"), 10000);
62-
Retries = FromStringWithDefault<ui32>(params.Get("retries"), 3);
63-
RetryPeriod = TDuration::MilliSeconds(FromStringWithDefault<ui32>(params.Get("retry_period"), RetryPeriod.MilliSeconds()));
63+
Retries = FromStringWithDefault<ui32>(Params.Get("retries"), 3);
64+
RetryPeriod = TDuration::MilliSeconds(FromStringWithDefault<ui32>(Params.Get("retry_period"), RetryPeriod.MilliSeconds()));
6465

6566
SendWhiteboardRequest();
6667
SendBSCRequest();
6768

68-
TBase::Become(&TThis::StateWork, TDuration::MilliSeconds(Timeout), new TEvents::TEvWakeup());
69+
TBase::Become(&TThis::StateWork, Timeout, new TEvents::TEvWakeup());
6970
}
7071

7172
STATEFN(StateWork) {
@@ -176,10 +177,6 @@ class TPDiskInfo : public TViewerPipeClient {
176177
SendWhiteboardRequest();
177178
}
178179

179-
void HandleTimeout() {
180-
TBase::ReplyAndPassAway(GetHTTPGATEWAYTIMEOUT("text/plain", "Timeout receiving response"), "Timeout");
181-
}
182-
183180
void PassAway() override {
184181
TBase::Send(TActivationContext::InterconnectProxy(NodeId), new TEvents::TEvUnsubscribe());
185182
TBase::PassAway();
@@ -236,11 +233,7 @@ class TPDiskInfo : public TViewerPipeClient {
236233
}
237234
}
238235
}
239-
TStringStream json;
240-
TProtoToJson::ProtoToJson(json, proto, {
241-
.EnumAsNumbers = false,
242-
});
243-
TBase::ReplyAndPassAway(GetHTTPOKJSON(json.Str()));
236+
TBase::ReplyAndPassAway(GetHTTPOKJSON(proto));
244237
}
245238

246239
static YAML::Node GetSwagger() {
@@ -251,20 +244,11 @@ class TPDiskInfo : public TViewerPipeClient {
251244
summary: Gets PDisk info
252245
description: Gets PDisk information from Whiteboard and BSC
253246
parameters:
254-
- name: node_id
255-
in: query
256-
description: node identifier
257-
type: integer
258247
- name: pdisk_id
259248
in: query
260249
description: pdisk identifier
261250
required: true
262-
type: integer
263-
- name: timeout
264-
in: query
265-
description: timeout in ms
266-
required: false
267-
type: integer
251+
type: string
268252
responses:
269253
200:
270254
description: OK

0 commit comments

Comments
 (0)