summaryrefslogtreecommitdiffstats
path: root/library/cpp/monlib/metrics/metric_registry_ut.cpp
diff options
context:
space:
mode:
authorarcadia-devtools <[email protected]>2022-06-21 11:31:57 +0300
committerarcadia-devtools <[email protected]>2022-06-21 11:31:57 +0300
commit444fb65b1a79c2c2ce6753cdfe18372203e1b44f (patch)
tree4314c153eff2e535c91c373cde41d486546514e3 /library/cpp/monlib/metrics/metric_registry_ut.cpp
parent184eb704ed3f6064598640cc8cf23ab5af942a97 (diff)
intermediate changes
ref:98c26ee2d3cd643aba98b8222f9f8a4c1773449a
Diffstat (limited to 'library/cpp/monlib/metrics/metric_registry_ut.cpp')
-rw-r--r--library/cpp/monlib/metrics/metric_registry_ut.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/library/cpp/monlib/metrics/metric_registry_ut.cpp b/library/cpp/monlib/metrics/metric_registry_ut.cpp
index 65fb2b3b387..0f0dbf0e6ea 100644
--- a/library/cpp/monlib/metrics/metric_registry_ut.cpp
+++ b/library/cpp/monlib/metrics/metric_registry_ut.cpp
@@ -239,6 +239,47 @@ Y_UNIT_TEST_SUITE(TMetricRegistryTest) {
UNIT_ASSERT_NO_DIFF(ss.Str(), NResource::Find("/histograms.json"));
}
+ Y_UNIT_TEST(HistogramsFabric) {
+ TMetricRegistry registry(TLabels{{"common", "label"}});
+ bool called = false;
+
+ auto collector = [&]() {
+ called = true;
+ return ExponentialHistogram(5, 2);
+ };
+
+ THistogram* h1 = registry.HistogramCounter(
+ {{"sensor", "readTimeMillis"}},
+ collector);
+
+ UNIT_ASSERT_VALUES_EQUAL(called, true);
+ called = false;
+
+ h1 = registry.HistogramCounter(
+ {{"sensor", "readTimeMillis"}},
+ collector);
+
+ UNIT_ASSERT_VALUES_EQUAL(called, false);
+
+ THistogram* h2 = registry.HistogramRate(
+ {{"sensor", "writeTimeMillis"}},
+ ExplicitHistogram({1, 5, 15, 20, 25}));
+
+ for (i64 i = 0; i < 100; i++) {
+ h1->Record(i);
+ h2->Record(i);
+ }
+
+ TStringStream ss;
+ {
+ auto encoder = EncoderJson(&ss, 2);
+ registry.Accept(TInstant::Zero(), encoder.Get());
+ }
+ ss << '\n';
+
+ UNIT_ASSERT_NO_DIFF(ss.Str(), NResource::Find("/histograms.json"));
+ }
+
Y_UNIT_TEST(StreamingEncoderTest) {
const TString expected {
"{\"commonLabels\":{\"common\":\"label\"},"