summaryrefslogtreecommitdiffstats
path: root/library/cpp/monlib/metrics/metric.h
diff options
context:
space:
mode:
authorgolubi-kuryat <[email protected]>2025-04-07 10:04:24 +0300
committergolubi-kuryat <[email protected]>2025-04-07 10:18:07 +0300
commitf414482ce4b8d716723c888bcb7603a4f49a8920 (patch)
tree5369d42ecf1c29c6ef90811fd68a4f1ef7842011 /library/cpp/monlib/metrics/metric.h
parent0b2bfef9c01a1d8230b29d1760f372dbed57c58d (diff)
Make WriteMetric protected
Появляется возможность зарегистрировать новую тип метрики с кастомным поведением, который наследуется от IMetric Пример использования HIDDEN_URL commit_hash:82e3997427ef61d8017d6a1c1eca848131b03d7b
Diffstat (limited to 'library/cpp/monlib/metrics/metric.h')
-rw-r--r--library/cpp/monlib/metrics/metric.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/library/cpp/monlib/metrics/metric.h b/library/cpp/monlib/metrics/metric.h
index 2f7d9de687f..bb5fda322ea 100644
--- a/library/cpp/monlib/metrics/metric.h
+++ b/library/cpp/monlib/metrics/metric.h
@@ -15,6 +15,7 @@ namespace NMonitoring {
virtual EMetricType Type() const noexcept = 0;
virtual void Accept(TInstant time, IMetricConsumer* consumer) const = 0;
+ virtual void Reset() noexcept = 0;
};
using IMetricPtr = TIntrusivePtr<IMetric>;
@@ -28,7 +29,7 @@ namespace NMonitoring {
virtual double Add(double n) noexcept = 0;
virtual void Set(double n) noexcept = 0;
virtual double Get() const noexcept = 0;
- virtual void Reset() noexcept {
+ void Reset() noexcept override {
Set(0);
}
};
@@ -58,7 +59,7 @@ namespace NMonitoring {
virtual void Set(i64 value) noexcept = 0;
virtual i64 Get() const noexcept = 0;
- virtual void Reset() noexcept {
+ void Reset() noexcept override {
Set(0);
}
};
@@ -84,7 +85,6 @@ namespace NMonitoring {
virtual ui64 Add(ui64 n) noexcept = 0;
virtual ui64 Get() const noexcept = 0;
- virtual void Reset() noexcept = 0;
};
class ILazyCounter: public IMetric {
@@ -108,7 +108,6 @@ namespace NMonitoring {
virtual ui64 Add(ui64 n) noexcept = 0;
virtual ui64 Get() const noexcept = 0;
- virtual void Reset() noexcept = 0;
};
class ILazyRate: public IMetric {
@@ -134,7 +133,6 @@ namespace NMonitoring {
virtual void Record(double value) noexcept = 0;
virtual void Record(double value, ui32 count) noexcept = 0;
virtual IHistogramSnapshotPtr TakeSnapshot() const = 0;
- virtual void Reset() noexcept = 0;
protected:
const bool IsRate_;
@@ -194,6 +192,8 @@ namespace NMonitoring {
consumer->OnDouble(time, Get());
}
+ void Reset() noexcept override {}
+
private:
std::function<double()> Supplier_;
};
@@ -245,6 +245,8 @@ namespace NMonitoring {
consumer->OnInt64(time, Get());
}
+ void Reset() noexcept override {}
+
private:
std::function<i64()> Supplier_;
};
@@ -296,6 +298,8 @@ namespace NMonitoring {
consumer->OnUint64(time, Get());
}
+ void Reset() noexcept override {}
+
private:
std::function<ui64()> Supplier_;
};
@@ -347,6 +351,8 @@ namespace NMonitoring {
consumer->OnUint64(time, Get());
}
+ void Reset() noexcept override {}
+
private:
std::function<ui64()> Supplier_;
};