@@ -80,26 +80,29 @@ class TJsonHotkeys : public TViewerPipeClient<TJsonHotkeys> {
8080
8181 void Handle (TEvSchemeShard::TEvDescribeSchemeResult::TPtr& ev) {
8282 DescribeResult = ev->Release ();
83- const auto & pathDescription = DescribeResult->GetRecord ().GetPathDescription ();
84- const auto & partitions = pathDescription.GetTablePartitions ();
85- const auto & metrics = pathDescription.GetTablePartitionMetrics ();
86- TVector<std::pair<ui64, int >> tabletsOrder;
87-
88- for (int i = 0 ; i < metrics.size (); ++i) {
89- tabletsOrder.emplace_back (metrics.Get (i).GetCPU (), i);
90- }
83+ const auto & pbRecord (DescribeResult->GetRecord ());
84+ if (pbRecord.HasPathDescription ()) {
85+ const auto & pathDescription = pbRecord.GetPathDescription ();
86+ const auto & partitions = pathDescription.GetTablePartitions ();
87+ const auto & metrics = pathDescription.GetTablePartitionMetrics ();
88+ TVector<std::pair<ui64, int >> tabletsOrder;
89+
90+ for (int i = 0 ; i < metrics.size (); ++i) {
91+ tabletsOrder.emplace_back (metrics.Get (i).GetCPU (), i);
92+ }
9193
92- Sort (tabletsOrder, std::greater<std::pair<ui64, int >>());
93- ui32 tablets = (ui32) std::max (1 , (int ) std::ceil (PollingFactor * tabletsOrder.size ()));
94+ Sort (tabletsOrder, std::greater<std::pair<ui64, int >>());
95+ ui32 tablets = (ui32) std::max (1 , (int ) std::ceil (PollingFactor * tabletsOrder.size ()));
9496
95- for (ui32 i = 0 ; i < tablets; ++i) {
96- THolder<TEvDataShard::TEvGetDataHistogramRequest> request = MakeHolder<TEvDataShard::TEvGetDataHistogramRequest>();
97- if (EnableSampling) {
98- request->Record .SetCollectKeySampleMs (30000 ); // 30 sec
97+ for (ui32 i = 0 ; i < tablets; ++i) {
98+ THolder<TEvDataShard::TEvGetDataHistogramRequest> request = MakeHolder<TEvDataShard::TEvGetDataHistogramRequest>();
99+ if (EnableSampling) {
100+ request->Record .SetCollectKeySampleMs (30000 ); // 30 sec
101+ }
102+ request->Record .SetActualData (true );
103+ ui64 datashardId = partitions.Get (tabletsOrder[i].second ).GetDatashardId ();
104+ SendRequestToPipe (ConnectTabletPipe (datashardId), request.Release ());
99105 }
100- request->Record .SetActualData (true );
101- ui64 datashardId = partitions.Get (tabletsOrder[i].second ).GetDatashardId ();
102- SendRequestToPipe (ConnectTabletPipe (datashardId), request.Release ());
103106 }
104107
105108 RequestDone ();
0 commit comments