diff options
author | alexvru <alexvru@ydb.tech> | 2023-07-28 21:45:23 +0300 |
---|---|---|
committer | alexvru <alexvru@ydb.tech> | 2023-07-28 21:45:23 +0300 |
commit | 528e321bcc2a2b67b53aeba58c3bd88305a141ee (patch) | |
tree | f320473f7b9d48ae5d4b92b494a4a5b882f8807f | |
parent | 986780c8b12cf687f40007bdfc76ff58a94baed7 (diff) | |
download | ydb-528e321bcc2a2b67b53aeba58c3bd88305a141ee.tar.gz |
Improve dsproxy mon KIKIMR-11082
-rw-r--r-- | ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp index 96b492c415a..aa3785f5652 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp @@ -24,8 +24,6 @@ class TMonQueryProcessor : public TActorBootstrapped<TMonQueryProcessor> { const ui32 GroupId; TIntrusivePtr<TBlobStorageGroupInfo> Info; NMon::TEvHttpInfo::TPtr Ev; - std::vector<TString> Urls; - ui32 PendingReplyCount = 0; public: TMonQueryProcessor(TIntrusivePtr<TBlobStorageGroupProxyMon> mon, TIntrusivePtr<TGroupQueues> groupQueues, @@ -38,34 +36,15 @@ public: {} void Bootstrap() { + std::vector<TString> urls; if (Info) { - const TInstant deadline = TActivationContext::Now() + TDuration::Seconds(5); - const TString pagePath(Ev->Get()->Request.GetPath()); - - Urls.resize(Info->GetTotalVDisksNum()); - for (ui32 i = 0; i < Urls.size(); ++i) { + for (ui32 i = 0; i < Info->GetTotalVDisksNum(); ++i) { const TActorId& serviceId = Info->GetActorId(i); ui32 nodeId, pdiskId, vslotId; std::tie(nodeId, pdiskId, vslotId) = DecomposeVDiskServiceId(serviceId); - const TString path = Sprintf("actors/vdisks/vdisk%09" PRIu32 "_%09" PRIu32, pdiskId, vslotId); - Send(NCrossRef::MakeCrossRefActorId(), new NCrossRef::TEvGenerateCrossRef(pagePath, nodeId, path, deadline), 0, i); - ++PendingReplyCount; + urls.push_back(Sprintf("node/%u/actors/vdisks/vdisk%09" PRIu32 "_%09" PRIu32, nodeId, pdiskId, vslotId)); } } - Become(&TThis::StateFunc); - if (!PendingReplyCount) { - GenerateResponse(); - } - } - - void Handle(NCrossRef::TEvCrossRef::TPtr ev) { - Urls[ev->Cookie] = ev->Get()->Url; - if (!--PendingReplyCount) { - GenerateResponse(); - } - } - - void GenerateResponse() { const TCgiParameters& cgi = Ev->Get()->Request.GetParams(); if (cgi.Has("submit_timestats")) { Mon->TimeStats.Submit(cgi); @@ -127,7 +106,7 @@ public: } const TVDiskID vdiskId = Info->GetVDiskId(vdisk.VDiskIdShort); - if (const auto& url = Urls[vdisk.OrderNumber]) { + if (const auto& url = urls[vdisk.OrderNumber]) { str << "<a href=\"" << url << "\">" << vdiskId << "</a>"; } else { str << vdiskId; @@ -318,10 +297,6 @@ public: Send(Ev->Sender, new NMon::TEvHttpInfoRes(str.Str())); PassAway(); } - - STRICT_STFUNC(StateFunc, - hFunc(NCrossRef::TEvCrossRef, Handle); - ) }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |