Skip to content

Commit 31ce18d

Browse files
committed
WIP
1 parent 7e086db commit 31ce18d

File tree

26 files changed

+140
-176
lines changed

26 files changed

+140
-176
lines changed

cloud/blockstore/apps/client/lib/command.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -450,8 +450,7 @@ void TCommand::Init()
450450
RequestStats = CreateClientRequestStats(
451451
clientGroup,
452452
Timer,
453-
EHistogramCounterOption::ReportMultipleCounters |
454-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
453+
EHistogramCounterOption::ReportMultipleCounters);
455454

456455
VolumeStats = CreateVolumeStats(
457456
Monitoring,

cloud/blockstore/config/diagnostics.proto

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ message TDiagnosticsConfig
233233
// Opentelemetry trace config
234234
optional NCloud.NProto.TOpentelemetryTraceConfig OpentelemetryTraceConfig = 54;
235235

236-
// Time histogram units for server metrics
237-
optional NCloud.NProto.ETimeHistogramUnits ServerTimeHistogramUnits = 56;
236+
// Report time histograms with milliseconds buckets. Percentiles are still
237+
// reported in microseconds.
238+
optional bool UseMsUnitsForTimeHistogram = 56;
238239
}

cloud/blockstore/libs/diagnostics/config.cpp

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace {
5656
xxx(LocalHDDDowntimeThreshold, TDuration, TDuration::Seconds(15) )\
5757
xxx(ReportHistogramAsMultipleCounters, bool, true )\
5858
xxx(ReportHistogramAsSingleCounter, bool, false )\
59-
xxx(ServerTimeHistogramUnits, NCloud::NProto::ETimeHistogramUnits, NCloud::NProto::ETimeHistogramUnits::THU_US )\
59+
xxx(UseMsUnitsForTimeHistogram, bool, false )\
6060
xxx(StatsFetcherType, NCloud::NProto::EStatsFetcherType, NCloud::NProto::EStatsFetcherType::CGROUP )\
6161
\
6262
xxx(SkipReportingZeroBlocksMetricsForYDBBasedDisks, bool, false )\
@@ -174,21 +174,9 @@ EHistogramCounterOptions TDiagnosticsConfig::GetHistogramCounterOptions() const
174174
if (GetReportHistogramAsSingleCounter()) {
175175
histogramCounterOptions |= EHistogramCounterOption::ReportSingleCounter;
176176
}
177-
switch (GetServerTimeHistogramUnits()) {
178-
case NCloud::NProto::ETimeHistogramUnits::THU_US:
179-
histogramCounterOptions |=
180-
EHistogramCounterOption::UseUsUnitsForTimeHistogram;
181-
break;
182-
case NCloud::NProto::ETimeHistogramUnits::THU_MS:
183-
histogramCounterOptions |=
184-
EHistogramCounterOption::UseMsUnitsForTimeHistogram;
185-
break;
186-
case NCloud::NProto::ETimeHistogramUnits::THU_MS_AND_US:
187-
histogramCounterOptions |=
188-
EHistogramCounterOption::UseMsUnitsForTimeHistogram;
189-
histogramCounterOptions |=
190-
EHistogramCounterOption::UseUsUnitsForTimeHistogram;
191-
break;
177+
if (GetUseMsUnitsForTimeHistogram()) {
178+
histogramCounterOptions |=
179+
EHistogramCounterOption::UseMsUnitsForTimeHistogram;
192180
}
193181
return histogramCounterOptions;
194182
}
@@ -317,11 +305,3 @@ void Out<NCloud::NProto::EStatsFetcherType>(
317305
out << NCloud::NProto::EStatsFetcherType_Name(
318306
statsFetcherType);
319307
}
320-
321-
template <>
322-
void Out<NCloud::NProto::ETimeHistogramUnits>(
323-
IOutputStream& out,
324-
NCloud::NProto::ETimeHistogramUnits timeHistogramUnits)
325-
{
326-
out << NCloud::NProto::ETimeHistogramUnits_Name(timeHistogramUnits);
327-
}

cloud/blockstore/libs/diagnostics/config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class TDiagnosticsConfig
158158

159159
TRequestThresholds GetRequestThresholds() const;
160160
EHistogramCounterOptions GetHistogramCounterOptions() const;
161-
NCloud::NProto::ETimeHistogramUnits GetServerTimeHistogramUnits() const;
161+
bool GetUseMsUnitsForTimeHistogram() const;
162162

163163
NCloud::NProto::EStatsFetcherType GetStatsFetcherType() const;
164164

cloud/blockstore/libs/diagnostics/request_stats_ut.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
6464
auto requestStats = CreateServerRequestStats(
6565
monitoring->GetCounters(),
6666
CreateWallClockTimer(),
67-
EHistogramCounterOption::ReportMultipleCounters |
68-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
67+
EHistogramCounterOption::ReportMultipleCounters);
6968

7069
auto totalCounters = monitoring
7170
->GetCounters()
@@ -231,8 +230,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
231230
auto requestStats = CreateServerRequestStats(
232231
monitoring->GetCounters(),
233232
CreateWallClockTimer(),
234-
EHistogramCounterOption::ReportMultipleCounters |
235-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
233+
EHistogramCounterOption::ReportMultipleCounters);
236234

237235
auto totalCounters =
238236
monitoring->GetCounters()->GetSubgroup("request", "WriteBlocks");
@@ -321,8 +319,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
321319
auto requestStats = CreateServerRequestStats(
322320
monitoring->GetCounters(),
323321
CreateWallClockTimer(),
324-
EHistogramCounterOption::ReportMultipleCounters |
325-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
322+
EHistogramCounterOption::ReportMultipleCounters);
326323

327324
auto totalCounters = monitoring
328325
->GetCounters()
@@ -434,8 +431,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
434431
auto requestStats = CreateServerRequestStats(
435432
monitoring->GetCounters(),
436433
CreateWallClockTimer(),
437-
EHistogramCounterOption::ReportMultipleCounters |
438-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
434+
EHistogramCounterOption::ReportMultipleCounters);
439435

440436
auto totalCounters =
441437
monitoring->GetCounters()->GetSubgroup("request", "WriteBlocks");
@@ -563,8 +559,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
563559
auto requestStats = CreateServerRequestStats(
564560
monitoring->GetCounters(),
565561
CreateWallClockTimer(),
566-
EHistogramCounterOption::ReportMultipleCounters |
567-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
562+
EHistogramCounterOption::ReportMultipleCounters);
568563

569564
auto totalCounters = monitoring
570565
->GetCounters()
@@ -661,8 +656,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
661656
auto requestStats = CreateServerRequestStats(
662657
monitoring->GetCounters(),
663658
CreateWallClockTimer(),
664-
EHistogramCounterOption::ReportMultipleCounters |
665-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
659+
EHistogramCounterOption::ReportMultipleCounters);
666660

667661
auto totalCounters = monitoring
668662
->GetCounters()
@@ -731,8 +725,7 @@ Y_UNIT_TEST_SUITE(TRequestStatsTest)
731725
auto requestStats = CreateServerRequestStats(
732726
monitoring->GetCounters(),
733727
CreateWallClockTimer(),
734-
EHistogramCounterOption::ReportMultipleCounters |
735-
EHistogramCounterOption::UseUsUnitsForTimeHistogram);
728+
EHistogramCounterOption::ReportMultipleCounters);
736729

737730
unsigned int totalShots = 0;
738731
auto shoot = [&] (auto mediaKind, unsigned int count) {

cloud/blockstore/libs/diagnostics/server_stats_ut.cpp

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ Y_UNIT_TEST_SUITE(TServerStatsTest)
147147
CreateServerRequestStats(
148148
serverGroup,
149149
timer,
150-
EHistogramCounterOption::ReportMultipleCounters |
151-
EHistogramCounterOption::UseUsUnitsForTimeHistogram),
150+
EHistogramCounterOption::ReportMultipleCounters),
152151
std::move(volumeStats)
153152
);
154153

@@ -222,8 +221,7 @@ Y_UNIT_TEST_SUITE(TServerStatsTest)
222221
CreateServerRequestStats(
223222
serverGroup,
224223
timer,
225-
EHistogramCounterOption::ReportMultipleCounters |
226-
EHistogramCounterOption::UseUsUnitsForTimeHistogram),
224+
EHistogramCounterOption::ReportMultipleCounters),
227225
std::move(volumeStats)
228226
);
229227

@@ -261,8 +259,7 @@ Y_UNIT_TEST_SUITE(TServerStatsTest)
261259
CreateServerRequestStats(
262260
serverGroup,
263261
timer,
264-
EHistogramCounterOption::ReportMultipleCounters |
265-
EHistogramCounterOption::UseUsUnitsForTimeHistogram),
262+
EHistogramCounterOption::ReportMultipleCounters),
266263
std::move(volumeStats)
267264
);
268265

@@ -350,8 +347,7 @@ Y_UNIT_TEST_SUITE(TServerStatsTest)
350347
CreateServerRequestStats(
351348
serverGroup,
352349
timer,
353-
EHistogramCounterOption::ReportMultipleCounters |
354-
EHistogramCounterOption::UseUsUnitsForTimeHistogram),
350+
EHistogramCounterOption::ReportMultipleCounters),
355351
std::move(volumeStats)
356352
);
357353

@@ -396,8 +392,7 @@ Y_UNIT_TEST_SUITE(TServerStatsTest)
396392
CreateServerRequestStats(
397393
monitoring->GetCounters(),
398394
timer,
399-
EHistogramCounterOption::ReportMultipleCounters |
400-
EHistogramCounterOption::UseUsUnitsForTimeHistogram),
395+
EHistogramCounterOption::ReportMultipleCounters),
401396
CreateVolumeStatsStub()
402397
);
403398

cloud/blockstore/libs/diagnostics/user_counter.cpp

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ void RegisterServiceVolume(
7676
const TString& cloudId,
7777
const TString& folderId,
7878
const TString& diskId,
79+
EHistogramCounterOptions histogramCounterOptions,
7980
TDynamicCounterPtr src)
8081
{
8182
const auto commonLabels =
@@ -94,7 +95,10 @@ void RegisterServiceVolume(
9495

9596
auto readSub = src->FindSubgroup("request", "ReadBlocks");
9697
AddHistogramUserMetric(
97-
GetUsBuckets(),
98+
histogramCounterOptions.HasFlag(
99+
EHistogramCounterOption::UseMsUnitsForTimeHistogram)
100+
? GetMsBuckets()
101+
: GetUsBuckets(),
98102
dsc,
99103
commonLabels,
100104
{{readSub, "ThrottlerDelay"}},
@@ -103,7 +107,10 @@ void RegisterServiceVolume(
103107
auto writeSub = src->FindSubgroup("request", "WriteBlocks");
104108
auto zeroSub = src->FindSubgroup("request", "ZeroBlocks");
105109
AddHistogramUserMetric(
106-
GetUsBuckets(),
110+
histogramCounterOptions.HasFlag(
111+
EHistogramCounterOption::UseMsUnitsForTimeHistogram)
112+
? GetMsBuckets()
113+
: GetUsBuckets(),
107114
dsc,
108115
commonLabels,
109116
{{writeSub, "ThrottlerDelay"}, {zeroSub, "ThrottlerDelay"}},
@@ -132,6 +139,7 @@ void RegisterServerVolumeInstance(
132139
const TString& diskId,
133140
const TString& instanceId,
134141
const bool reportZeroBlocksMetrics,
142+
EHistogramCounterOptions histogramCounterOptions,
135143
TDynamicCounterPtr src)
136144
{
137145
if (instanceId.empty()) {
@@ -184,7 +192,10 @@ void RegisterServerVolumeInstance(
184192
{{readSub, "MaxInProgressBytes"}},
185193
DISK_READ_BYTES_IN_FLIGHT_BURST);
186194
AddHistogramUserMetric(
187-
GetUsBuckets(),
195+
histogramCounterOptions.HasFlag(
196+
EHistogramCounterOption::UseMsUnitsForTimeHistogram)
197+
? GetMsBuckets()
198+
: GetUsBuckets(),
188199
dsc,
189200
commonLabels,
190201
{{readSub, "Time"}},
@@ -242,7 +253,10 @@ void RegisterServerVolumeInstance(
242253
getWriteCounters("MaxInProgressBytes"),
243254
DISK_WRITE_BYTES_IN_FLIGHT_BURST);
244255
AddHistogramUserMetric(
245-
GetUsBuckets(),
256+
histogramCounterOptions.HasFlag(
257+
EHistogramCounterOption::UseMsUnitsForTimeHistogram)
258+
? GetMsBuckets()
259+
: GetUsBuckets(),
246260
dsc,
247261
commonLabels,
248262
getWriteCounters("Time"),

cloud/blockstore/libs/diagnostics/user_counter.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#pragma once
22

3+
#include <cloud/storage/core/libs/diagnostics/histogram_counter_options.h>
4+
#include <cloud/storage/core/libs/user_stats/counter/user_counter.h>
5+
36
#include <library/cpp/monlib/dynamic_counters/counters.h>
47
#include <library/cpp/monlib/metrics/metric_registry.h>
58

6-
#include <cloud/storage/core/libs/user_stats/counter/user_counter.h>
7-
89
#include <util/generic/hash_multi_map.h>
910

1011
namespace NCloud::NBlockStore::NUserCounter {
@@ -18,6 +19,7 @@ void RegisterServiceVolume(
1819
const TString& cloudId,
1920
const TString& folderId,
2021
const TString& diskId,
22+
EHistogramCounterOptions histogramCounterOptions,
2123
NMonitoring::TDynamicCounterPtr src);
2224

2325
void UnregisterServiceVolume(
@@ -33,6 +35,7 @@ void RegisterServerVolumeInstance(
3335
const TString& diskId,
3436
const TString& instanceId,
3537
const bool reportZeroBlocksMetrics,
38+
EHistogramCounterOptions histogramCounterOptions,
3639
NMonitoring::TDynamicCounterPtr src);
3740

3841
void UnregisterServerVolumeInstance(

cloud/blockstore/libs/diagnostics/user_counter_ut.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ Y_UNIT_TEST_SUITE(TUserWrapperTest)
229229
"diskId",
230230
"instanceId",
231231
config.ReportZeroBlocksMetrics,
232+
EHistogramCounterOptions(),
232233
stats);
233234

234235
ValidateTestResult(supplier.get(), config.Resource);

cloud/blockstore/libs/diagnostics/volume_stats.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,7 @@ class TVolumeStats final
898898
volumeConfig.GetDiskId(),
899899
realInstanceId.GetInstanceId(),
900900
reportZeroBlocksMetrics,
901+
DiagnosticsConfig->GetHistogramCounterOptions(),
901902
countersGroup);
902903

903904
return info;

0 commit comments

Comments
 (0)