diff options
author | msherbakov <msherbakov@yandex-team.ru> | 2022-02-10 16:49:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:17 +0300 |
commit | a0ffafe83b7d6229709a32fa942c71d672ac989c (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/monlib/metrics/fake.cpp | |
parent | c224a621661ddd69699f9476922eb316607ef57e (diff) | |
download | ydb-a0ffafe83b7d6229709a32fa942c71d672ac989c.tar.gz |
Restoring authorship annotation for <msherbakov@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/monlib/metrics/fake.cpp')
-rw-r--r-- | library/cpp/monlib/metrics/fake.cpp | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/library/cpp/monlib/metrics/fake.cpp b/library/cpp/monlib/metrics/fake.cpp index 6890ca5ab03..b6f5e37af89 100644 --- a/library/cpp/monlib/metrics/fake.cpp +++ b/library/cpp/monlib/metrics/fake.cpp @@ -1,11 +1,11 @@ -#include "fake.h" - -namespace NMonitoring { +#include "fake.h" + +namespace NMonitoring { IGauge* TFakeMetricRegistry::Gauge(ILabelsPtr labels) { return Metric<TFakeGauge, EMetricType::GAUGE>(std::move(labels)); - } - + } + ILazyGauge* TFakeMetricRegistry::LazyGauge(ILabelsPtr labels, std::function<double()> supplier) { Y_UNUSED(supplier); return Metric<TFakeLazyGauge, EMetricType::GAUGE>(std::move(labels)); @@ -13,8 +13,8 @@ namespace NMonitoring { IIntGauge* TFakeMetricRegistry::IntGauge(ILabelsPtr labels) { return Metric<TFakeIntGauge, EMetricType::IGAUGE>(std::move(labels)); - } - + } + ILazyIntGauge* TFakeMetricRegistry::LazyIntGauge(ILabelsPtr labels, std::function<i64()> supplier) { Y_UNUSED(supplier); return Metric<TFakeLazyIntGauge, EMetricType::IGAUGE>(std::move(labels)); @@ -22,8 +22,8 @@ namespace NMonitoring { ICounter* TFakeMetricRegistry::Counter(ILabelsPtr labels) { return Metric<TFakeCounter, EMetricType::COUNTER>(std::move(labels)); - } - + } + ILazyCounter* TFakeMetricRegistry::LazyCounter(ILabelsPtr labels, std::function<ui64()> supplier) { Y_UNUSED(supplier); return Metric<TFakeLazyCounter, EMetricType::COUNTER>(std::move(labels)); @@ -31,70 +31,70 @@ namespace NMonitoring { IRate* TFakeMetricRegistry::Rate(ILabelsPtr labels) { return Metric<TFakeRate, EMetricType::RATE>(std::move(labels)); - } - + } + ILazyRate* TFakeMetricRegistry::LazyRate(ILabelsPtr labels, std::function<ui64()> supplier) { Y_UNUSED(supplier); return Metric<TFakeLazyRate, EMetricType::RATE>(std::move(labels)); } IHistogram* TFakeMetricRegistry::HistogramCounter(ILabelsPtr labels, IHistogramCollectorPtr collector) { - Y_UNUSED(collector); + Y_UNUSED(collector); return Metric<TFakeHistogram, EMetricType::HIST>(std::move(labels), false); - } - + } + void TFakeMetricRegistry::RemoveMetric(const ILabels& labels) noexcept { - TWriteGuard g{Lock_}; + TWriteGuard g{Lock_}; Metrics_.erase(labels); - } - + } + void TFakeMetricRegistry::Accept(TInstant time, IMetricConsumer* consumer) const { - Y_UNUSED(time); - consumer->OnStreamBegin(); - consumer->OnStreamEnd(); - } - + Y_UNUSED(time); + consumer->OnStreamBegin(); + consumer->OnStreamEnd(); + } + IHistogram* TFakeMetricRegistry::HistogramRate(ILabelsPtr labels, IHistogramCollectorPtr collector) { - Y_UNUSED(collector); + Y_UNUSED(collector); return Metric<TFakeHistogram, EMetricType::HIST_RATE>(std::move(labels), true); - } - + } + void TFakeMetricRegistry::Append(TInstant time, IMetricConsumer* consumer) const { - Y_UNUSED(time, consumer); - } - + Y_UNUSED(time, consumer); + } + const TLabels& TFakeMetricRegistry::CommonLabels() const noexcept { - return CommonLabels_; - } - + return CommonLabels_; + } + template <typename TMetric, EMetricType type, typename TLabelsType, typename... Args> TMetric* TFakeMetricRegistry::Metric(TLabelsType&& labels, Args&&... args) { - { - TReadGuard g{Lock_}; - + { + TReadGuard g{Lock_}; + auto it = Metrics_.find(labels); if (it != Metrics_.end()) { Y_ENSURE(it->second->Type() == type, "cannot create metric " << labels << " with type " << MetricTypeToStr(type) << ", because registry already has same metric with type " << MetricTypeToStr(it->second->Type())); return static_cast<TMetric*>(it->second.Get()); - } - } - - { - TWriteGuard g{Lock_}; - + } + } + + { + TWriteGuard g{Lock_}; + IMetricPtr metric = MakeHolder<TMetric>(std::forward<Args>(args)...); - + // decltype(Metrics_)::iterator breaks build on windows THashMap<ILabelsPtr, IMetricPtr>::iterator it; - if constexpr (!std::is_convertible_v<TLabelsType, ILabelsPtr>) { + if constexpr (!std::is_convertible_v<TLabelsType, ILabelsPtr>) { it = Metrics_.emplace(new TLabels{std::forward<TLabelsType>(labels)}, std::move(metric)).first; - } else { + } else { it = Metrics_.emplace(std::forward<TLabelsType>(labels), std::move(metric)).first; - } - + } + return static_cast<TMetric*>(it->second.Get()); - } - } -} // namespace NMonitoring + } + } +} // namespace NMonitoring |