aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralexvru <alexvru@ydb.tech>2023-07-28 21:45:23 +0300
committeralexvru <alexvru@ydb.tech>2023-07-28 21:45:23 +0300
commit528e321bcc2a2b67b53aeba58c3bd88305a141ee (patch)
treef320473f7b9d48ae5d4b92b494a4a5b882f8807f
parent986780c8b12cf687f40007bdfc76ff58a94baed7 (diff)
downloadydb-528e321bcc2a2b67b53aeba58c3bd88305a141ee.tar.gz
Improve dsproxy mon KIKIMR-11082
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_monactor.cpp33
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);
- )
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////