@@ -236,6 +236,10 @@ namespace {
236236 PingTimeHistogram->Collect (value);
237237 }
238238
239+ void UpdateIcQueueTimeHistogram (ui64 value) override {
240+ InterconnectQueueTimeHistogram->Collect (value);
241+ }
242+
239243 void UpdateOutputChannelTraffic (ui16 channel, ui64 value) override {
240244 auto & ch = GetOutputChannel (channel);
241245 if (ch.OutgoingTraffic ) {
@@ -317,6 +321,8 @@ namespace {
317321
318322 PingTimeHistogram = AdaptiveCounters->GetHistogram (
319323 " PingTimeUs" , NMonitoring::ExponentialHistogram (18 , 2 , 125 ));
324+ InterconnectQueueTimeHistogram = AdaptiveCounters->GetHistogram (
325+ " InterconnectQueueTimeHistogramUs" , NMonitoring::ExplicitHistogram ({500 , 1000 , 5000 , 10000 , 50000 , 100000 }));
320326 }
321327
322328 if (updateGlobal) {
@@ -379,6 +385,7 @@ namespace {
379385 NMonitoring::TDynamicCounters::TCounterPtr UsefulWriteWakeups;
380386 NMonitoring::TDynamicCounters::TCounterPtr SpuriousWriteWakeups;
381387 NMonitoring::THistogramPtr PingTimeHistogram;
388+ NMonitoring::THistogramPtr InterconnectQueueTimeHistogram;
382389
383390 std::unordered_map<ui16, TOutputChannel> OutputChannels;
384391 TOutputChannel OtherOutputChannel;
@@ -580,6 +587,10 @@ namespace {
580587 PingTimeHistogram_->Record (value);
581588 }
582589
590+ void UpdateIcQueueTimeHistogram (ui64 value) override {
591+ InterconnectQueueTimeHistogram_->Record (value);
592+ }
593+
583594 void UpdateOutputChannelTraffic (ui16 channel, ui64 value) override {
584595 auto & ch = GetOutputChannel (channel);
585596 if (ch.OutgoingTraffic ) {
@@ -672,6 +683,8 @@ namespace {
672683 InflightDataAmount_ = createRate (AdaptiveMetrics_, " interconnect.inflight_data" );
673684 PingTimeHistogram_ = AdaptiveMetrics_->HistogramRate (
674685 NMonitoring::MakeLabels ({{" sensor" , " interconnect.ping_time_us" }}), NMonitoring::ExponentialHistogram (18 , 2 , 125 ));
686+ InterconnectQueueTimeHistogram_ = AdaptiveMetrics_->HistogramRate (
687+ NMonitoring::MakeLabels ({{" sensor" , " interconnect.ic_queue_time_us" }}), NMonitoring::ExplicitHistogram ({500 , 1000 , 5000 , 10000 , 50000 , 100000 }));
675688 }
676689
677690 if (updateGlobal) {
@@ -756,6 +769,7 @@ namespace {
756769 NMonitoring::IIntGauge* ClockSkewMicrosec_;
757770
758771 NMonitoring::IHistogram* PingTimeHistogram_;
772+ NMonitoring::IHistogram* InterconnectQueueTimeHistogram_;
759773
760774 THashMap<ui16, TOutputChannel> OutputChannels_;
761775 TOutputChannel OtherOutputChannel_;
0 commit comments