diff options
author | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-02-10 11:11:27 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 15:58:17 +0300 |
commit | 4ea9ba77900523cdb8765a260b28d0a7ef906806 (patch) | |
tree | 28970f6ff02ab18cb5bc5044b9afbde70db95f6b /library/cpp/monlib | |
parent | d80d342ddc1aff6e89a7fc1183ea621bc7ed4387 (diff) | |
download | ydb-4ea9ba77900523cdb8765a260b28d0a7ef906806.tar.gz |
intermediate changes
ref:2c3e46cc24129798623a4e38cf6e79cae4c95dac
Diffstat (limited to 'library/cpp/monlib')
-rw-r--r-- | library/cpp/monlib/metrics/metric_registry.cpp | 5 | ||||
-rw-r--r-- | library/cpp/monlib/metrics/metric_registry.h | 7 | ||||
-rw-r--r-- | library/cpp/monlib/metrics/metric_registry_ut.cpp | 17 |
3 files changed, 29 insertions, 0 deletions
diff --git a/library/cpp/monlib/metrics/metric_registry.cpp b/library/cpp/monlib/metrics/metric_registry.cpp index e46141ccde..b083163a7b 100644 --- a/library/cpp/monlib/metrics/metric_registry.cpp +++ b/library/cpp/monlib/metrics/metric_registry.cpp @@ -152,6 +152,11 @@ namespace NMonitoring { } } + void TMetricRegistry::Clear() { + TWriteGuard g{Lock_}; + Metrics_.clear(); + } + template <typename TMetric, EMetricType type, typename TLabelsType, typename... Args> TMetric* TMetricRegistry::Metric(TLabelsType&& labels, Args&&... args) { { diff --git a/library/cpp/monlib/metrics/metric_registry.h b/library/cpp/monlib/metrics/metric_registry.h index 68b2d652cb..670cf8651e 100644 --- a/library/cpp/monlib/metrics/metric_registry.h +++ b/library/cpp/monlib/metrics/metric_registry.h @@ -79,7 +79,14 @@ namespace NMonitoring { TLabels labels, IHistogramCollectorPtr collector); + /** + * Set all registered metrics to zero + */ void Reset(); + /** + * Remove all registered metrics from registry + */ + void Clear(); void Accept(TInstant time, IMetricConsumer* consumer) const override; void Append(TInstant time, IMetricConsumer* consumer) const override; diff --git a/library/cpp/monlib/metrics/metric_registry_ut.cpp b/library/cpp/monlib/metrics/metric_registry_ut.cpp index afcbcd6801..86d9a52ec0 100644 --- a/library/cpp/monlib/metrics/metric_registry_ut.cpp +++ b/library/cpp/monlib/metrics/metric_registry_ut.cpp @@ -299,4 +299,21 @@ Y_UNIT_TEST_SUITE(TMetricRegistryTest) { "\"sensors\":[{\"kind\":\"GAUGE\",\"labels\":{\"my\":\"gauge\"},\"value\":12.34}]}"); } } + + Y_UNIT_TEST(MetricsRegistryClear) { + TMetricRegistry registry; + registry.Gauge({{"some", "label"}})->Add(1); + + NProto::TSingleSamplesList samples; + auto encoder = EncoderProtobuf(&samples); + registry.Accept(TInstant::Now(), encoder.Get()); + + UNIT_ASSERT(samples.SamplesSize() == 1); + + samples = {}; + registry.Clear(); + registry.Accept(TInstant::Now(), encoder.Get()); + + UNIT_ASSERT(samples.SamplesSize() == 0); + } } |