Skip to content

Commit 7e086db

Browse files
committed
Functional compound hist
1 parent bab703a commit 7e086db

File tree

2 files changed

+28
-25
lines changed

2 files changed

+28
-25
lines changed

cloud/storage/core/libs/diagnostics/request_counters.cpp

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -151,21 +151,21 @@ class TCompoundTimeHist
151151
const TString& name,
152152
EHistogramCounterOptions counterOptions)
153153
{
154-
const bool useMsUnitsForTimeHistogram =
155-
counterOptions &
156-
EHistogramCounterOption::UseMsUnitsForTimeHistogram;
157154
const bool useUsUnitsForTimeHistogram =
158155
counterOptions &
159156
EHistogramCounterOption::UseUsUnitsForTimeHistogram;
157+
const bool useMsUnitsForTimeHistogram =
158+
counterOptions &
159+
EHistogramCounterOption::UseMsUnitsForTimeHistogram;
160160
Y_ABORT_UNLESS(
161-
useMsUnitsForTimeHistogram || useUsUnitsForTimeHistogram,
161+
useUsUnitsForTimeHistogram || useMsUnitsForTimeHistogram,
162162
"At least one of the units must be enabled");
163-
if (useMsUnitsForTimeHistogram) {
164-
MsTimeHist = std::make_unique<TMsTimeHist>(name, counterOptions);
165-
}
166163
if (useUsUnitsForTimeHistogram) {
167164
UsTimeHist = std::make_unique<TUsTimeHist>(name, counterOptions);
168165
}
166+
if (useMsUnitsForTimeHistogram) {
167+
MsTimeHist = std::make_unique<TMsTimeHist>(name, counterOptions);
168+
}
169169
}
170170
~TCompoundTimeHist() = default;
171171

@@ -176,47 +176,47 @@ class TCompoundTimeHist
176176

177177
void Increment(TDuration requestTime, ui64 count = 1)
178178
{
179-
if (MsTimeHist) {
180-
MsTimeHist->Increment(requestTime, count);
181-
}
182179
if (UsTimeHist) {
183180
UsTimeHist->Increment(requestTime, count);
184181
}
182+
if (MsTimeHist) {
183+
MsTimeHist->Increment(requestTime, count);
184+
}
185185
}
186186

187187
template <typename... Args>
188188
void Register(Args&&... args)
189189
{
190-
if (MsTimeHist) {
191-
MsTimeHist->Register(args...);
192-
}
193190
if (UsTimeHist) {
194-
UsTimeHist->Register(std::forward<Args>(args)...);
191+
UsTimeHist->Register(args...);
192+
}
193+
if (MsTimeHist) {
194+
MsTimeHist->Register(std::forward<Args>(args)...);
195195
}
196196
}
197197

198198
[[nodiscard]] TVector<TBucketInfo> GetBuckets() const
199199
{
200-
if (MsTimeHist) {
201-
return MsTimeHist->GetBuckets();
200+
if (UsTimeHist) {
201+
return UsTimeHist->GetBuckets();
202202
}
203-
return UsTimeHist->GetBuckets();
203+
return MsTimeHist->GetBuckets();
204204
}
205205

206206
[[nodiscard]] const TString& GetUnits() const
207207
{
208-
if (MsTimeHist) {
209-
return MsTimeHist->GetUnits();
208+
if (UsTimeHist) {
209+
return UsTimeHist->GetUnits();
210210
}
211-
return UsTimeHist->GetUnits();
211+
return MsTimeHist->GetUnits();
212212
}
213213

214214
[[nodiscard]] const TString& GetName() const
215215
{
216-
if (MsTimeHist) {
217-
return MsTimeHist->GetName();
216+
if (UsTimeHist) {
217+
return UsTimeHist->GetName();
218218
}
219-
return UsTimeHist->GetName();
219+
return MsTimeHist->GetName();
220220
}
221221
};
222222

@@ -274,11 +274,14 @@ class TRequestPercentiles
274274

275275
TVector<TBucketInfo> delta(Reserve(update.size()));
276276
for (size_t i = 0; i < update.size(); ++i) {
277+
// Cerr << "update [" << i << "] = " << update[i].first << ", " << update[i].second << Endl;
277278
const auto& [bound, value] = update[i];
278279
delta.emplace_back(bound, value - Prev[i]);
279280
Prev[i] = value;
280281
}
281282

283+
// Cerr << "-------------" << Endl;
284+
282285
auto result = CalculateWeightedPercentiles(
283286
delta,
284287
GetDefaultPercentiles());

cloud/storage/core/libs/diagnostics/weighted_percentile.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ TVector<double> CalculateWeightedPercentiles(
7070
current = (double)(prevSum + bit->second) / totalSum;
7171
}
7272
if (current >= pit->first) {
73-
const auto delta = pit->first * totalSum - prevSum;
74-
const auto part = (bit->first - prevLimit)
73+
const double delta = pit->first * totalSum - prevSum;
74+
const double part = (bit->first - prevLimit)
7575
* (delta / (bit->second ? bit->second : 1));
7676
result.push_back(std::min(prevLimit + part, greatestFiniteLimit));
7777
++pit;

0 commit comments

Comments
 (0)