aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/monlib/metrics
diff options
context:
space:
mode:
authorAlexey Efimov <xeno@prnwatch.com>2022-03-24 12:43:54 +0300
committerAlexey Efimov <xeno@prnwatch.com>2022-03-24 12:43:54 +0300
commit43a2b5dd73d8a7aa80d4c1ba4ee70428fffbd17e (patch)
treeabebfb404c82a24c52c2372f497eadefd899dfb3 /library/cpp/monlib/metrics
parent057f22cbb5bfa82df4bfde220d5aaaa08f34257b (diff)
downloadydb-43a2b5dd73d8a7aa80d4c1ba4ee70428fffbd17e.tar.gz
switch metrics registry to shared_ptr KIKIMR-14218
ref:5ef16c21e373b05982980dcd3016950f15a884e8
Diffstat (limited to 'library/cpp/monlib/metrics')
-rw-r--r--library/cpp/monlib/metrics/metric_registry.cpp6
-rw-r--r--library/cpp/monlib/metrics/metric_registry.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/library/cpp/monlib/metrics/metric_registry.cpp b/library/cpp/monlib/metrics/metric_registry.cpp
index 74260e3069..3d7ffd40cf 100644
--- a/library/cpp/monlib/metrics/metric_registry.cpp
+++ b/library/cpp/monlib/metrics/metric_registry.cpp
@@ -43,9 +43,15 @@ namespace NMonitoring {
TMetricRegistry& TMetricRegistry::operator=(TMetricRegistry&& other) = default;
TMetricRegistry* TMetricRegistry::Instance() {
+ //return SharedInstance().get();
return Singleton<TMetricRegistry>();
}
+ std::shared_ptr<TMetricRegistry> TMetricRegistry::SharedInstance() {
+ static auto instance(std::make_shared<TMetricRegistry>());
+ return instance;
+ }
+
TGauge* TMetricRegistry::Gauge(TLabels labels) {
return Metric<TGauge, EMetricType::GAUGE>(std::move(labels));
}
diff --git a/library/cpp/monlib/metrics/metric_registry.h b/library/cpp/monlib/metrics/metric_registry.h
index 06e61d9991..faba19e845 100644
--- a/library/cpp/monlib/metrics/metric_registry.h
+++ b/library/cpp/monlib/metrics/metric_registry.h
@@ -67,6 +67,7 @@ namespace NMonitoring {
* Get a global metrics registry instance.
*/
static TMetricRegistry* Instance();
+ static std::shared_ptr<TMetricRegistry> SharedInstance();
TGauge* Gauge(TLabels labels);
TLazyGauge* LazyGauge(TLabels labels, std::function<double()> supplier);