@@ -170,50 +170,6 @@ BucketLevelSnapshot<BucketT>::BucketLevelSnapshot(
170170{
171171}
172172
173- template <class BucketT >
174- static UnorderedMap<
175- medida::MetricsRegistry*,
176- UnorderedMap<LedgerEntryType, SimpleTimer<std::chrono::microseconds>>>
177- gPointTimers ;
178-
179- template <class BucketT > static std::mutex gPointTimerLock ;
180-
181- template <class BucketT >
182- static UnorderedMap<LedgerEntryType, SimpleTimer<std::chrono::microseconds>>&
183- getPointTimers (medida::MetricsRegistry& registry)
184- {
185- std::lock_guard guard{gPointTimerLock <BucketT>};
186- auto & res = gPointTimers <BucketT>[®istry];
187- if (res.empty ())
188- {
189- // Initialize point load timers for each LedgerEntry type
190- for (auto t : xdr::xdr_traits<LedgerEntryType>::enum_values ())
191- {
192- auto const & label = xdr::xdr_traits<LedgerEntryType>::enum_name (
193- static_cast <LedgerEntryType>(t));
194- res.emplace (std::piecewise_construct,
195- std::forward_as_tuple (static_cast <LedgerEntryType>(t)),
196- std::forward_as_tuple (registry, BucketT::METRIC_STRING,
197- label, " " ,
198- std::chrono::seconds (30 )));
199- }
200- }
201- return res;
202- }
203-
204- void
205- unregisterSimpleTimers (medida::MetricsRegistry& registry)
206- {
207- {
208- std::lock_guard guard{gPointTimerLock <LiveBucket>};
209- gPointTimers <LiveBucket>.erase (®istry);
210- }
211- {
212- std::lock_guard guard{gPointTimerLock <HotArchiveBucket>};
213- gPointTimers <HotArchiveBucket>.erase (®istry);
214- }
215- }
216-
217173template <class BucketT >
218174SearchableBucketListSnapshotBase<BucketT>::SearchableBucketListSnapshotBase(
219175 BucketSnapshotManager const & snapshotManager, AppConnector const & app,
@@ -223,14 +179,20 @@ SearchableBucketListSnapshotBase<BucketT>::SearchableBucketListSnapshotBase(
223179 , mSnapshot (std::move(snapshot))
224180 , mHistoricalSnapshots (std::move(historicalSnapshots))
225181 , mAppConnector (app)
226- , mPointTimers {getPointTimers<BucketT>(app.getMetrics ())}
227182 , mBulkLoadMeter (app.getMetrics().NewMeter(
228183 {BucketT::METRIC_STRING, " query" , " loads" }, " query" ))
229184 , mBloomMisses (app.getMetrics().NewMeter(
230185 {BucketT::METRIC_STRING, " bloom" , " misses" }, " bloom" ))
231186 , mBloomLookups (app.getMetrics().NewMeter(
232187 {BucketT::METRIC_STRING, " bloom" , " lookups" }, " bloom" ))
233188{
189+ for (auto t : xdr::xdr_traits<LedgerEntryType>::enum_values ())
190+ {
191+ auto const & label = xdr::xdr_traits<LedgerEntryType>::enum_name (
192+ static_cast <LedgerEntryType>(t));
193+ auto & timer = mSnapshotManager .getTimer (BucketT::METRIC_STRING, label);
194+ mPointTimers .emplace (static_cast <LedgerEntryType>(t), timer);
195+ }
234196}
235197
236198template <class BucketT >
0 commit comments