aboutsummaryrefslogtreecommitdiffstats
path: root/library/python
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-12-24 22:01:20 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-12-24 22:01:20 +0000
commitbd0e2de0b1035962a4d5b9e847eaa6508fad7fcf (patch)
tree79878ca309f9f7fada064f9b78b4223af4635f28 /library/python
parentbe43a4691ebdd4dbe260a8d77df4cd8423b14c05 (diff)
parente6bd80ded127cd064560f7ea471974b602770cb1 (diff)
downloadydb-bd0e2de0b1035962a4d5b9e847eaa6508fad7fcf.tar.gz
Merge branch 'PR'
Diffstat (limited to 'library/python')
-rw-r--r--library/python/monlib/metric_registry.pxd1
-rw-r--r--library/python/monlib/metric_registry.pyx3
-rw-r--r--library/python/monlib/ut/py2/test.py91
-rw-r--r--library/python/monlib/ut/py3/test.py91
4 files changed, 186 insertions, 0 deletions
diff --git a/library/python/monlib/metric_registry.pxd b/library/python/monlib/metric_registry.pxd
index e57c963929..998acf3141 100644
--- a/library/python/monlib/metric_registry.pxd
+++ b/library/python/monlib/metric_registry.pxd
@@ -20,6 +20,7 @@ cdef extern from "library/cpp/monlib/metrics/metric_registry.h" namespace "NMoni
THistogram* HistogramRate(const TLabels&, IHistogramCollectorPtr collector) except +
void Reset() except +
+ void Clear() except +
void Accept(TInstant time, IMetricConsumer* consumer) except +
void Append(TInstant time, IMetricConsumer* consumer) except +
diff --git a/library/python/monlib/metric_registry.pyx b/library/python/monlib/metric_registry.pyx
index aae0a5962a..6ddf64cd78 100644
--- a/library/python/monlib/metric_registry.pyx
+++ b/library/python/monlib/metric_registry.pyx
@@ -264,6 +264,9 @@ cdef class MetricRegistry:
def reset(self):
self.__wrapped.Get().Reset()
+ def clear(self):
+ self.__wrapped.Get().Clear()
+
def accept(self, time, Encoder encoder):
cdef IMetricConsumer* ptr = <IMetricConsumer*>encoder.native()
timestamp = int((time - dt.datetime(1970, 1, 1)).total_seconds())
diff --git a/library/python/monlib/ut/py2/test.py b/library/python/monlib/ut/py2/test.py
index 2880120a12..4e389c47f1 100644
--- a/library/python/monlib/ut/py2/test.py
+++ b/library/python/monlib/ut/py2/test.py
@@ -311,3 +311,94 @@ EXPECTED = json.loads("""
def test_unistat_conversion(request):
j = loads(UNISTAT_DATA, from_format='unistat', to_format='json')
assert json.loads(j) == EXPECTED
+
+
+def test_reset_and_clear_registry():
+ registry = MetricRegistry()
+
+ c = registry.counter({'foo': 'counter'})
+ c.inc()
+
+ g = registry.gauge({'foo': 'gauge'})
+ g.set(20)
+
+ r = registry.rate({'foo': 'rate'})
+ r.add(10)
+
+ out = dumps(registry, format="json")
+ expected = json.loads("""{
+ "sensors":
+ [
+ {
+ "kind":"RATE",
+ "labels":
+ {
+ "foo":"rate"
+ },
+ "value":10
+ },
+ {
+ "kind":"COUNTER",
+ "labels":
+ {
+ "foo":"counter"
+ },
+ "value":1
+ },
+ {
+ "kind":"GAUGE",
+ "labels":
+ {
+ "foo":"gauge"
+ },
+ "value":20
+ }
+ ]
+ }
+ """)
+
+ j = json.loads(out)
+ assert j == expected
+
+ registry.reset()
+
+ out = dumps(registry, format="json")
+ expected = json.loads("""{
+ "sensors":
+ [
+ {
+ "kind":"RATE",
+ "labels":
+ {
+ "foo":"rate"
+ },
+ "value":0
+ },
+ {
+ "kind":"COUNTER",
+ "labels":
+ {
+ "foo":"counter"
+ },
+ "value":0
+ },
+ {
+ "kind":"GAUGE",
+ "labels":
+ {
+ "foo":"gauge"
+ },
+ "value":0
+ }
+ ]
+ }
+ """)
+
+ j = json.loads(out)
+ assert j == expected
+
+ registry.clear()
+
+ out = dumps(registry, format="json")
+ j = json.loads(out)
+ assert j == {}
diff --git a/library/python/monlib/ut/py3/test.py b/library/python/monlib/ut/py3/test.py
index 431241c657..5a68c1653e 100644
--- a/library/python/monlib/ut/py3/test.py
+++ b/library/python/monlib/ut/py3/test.py
@@ -309,3 +309,94 @@ EXPECTED = json.loads("""
def test_unistat_conversion(request):
j = loads(UNISTAT_DATA, from_format='unistat', to_format='json')
assert json.loads(j) == EXPECTED
+
+
+def test_reset_and_clear_registry():
+ registry = MetricRegistry()
+
+ c = registry.counter({'foo': 'counter'})
+ c.inc()
+
+ g = registry.gauge({'foo': 'gauge'})
+ g.set(20)
+
+ r = registry.rate({'foo': 'rate'})
+ r.add(10)
+
+ out = dumps(registry, format="json")
+ expected = json.loads("""{
+ "sensors":
+ [
+ {
+ "kind":"RATE",
+ "labels":
+ {
+ "foo":"rate"
+ },
+ "value":10
+ },
+ {
+ "kind":"COUNTER",
+ "labels":
+ {
+ "foo":"counter"
+ },
+ "value":1
+ },
+ {
+ "kind":"GAUGE",
+ "labels":
+ {
+ "foo":"gauge"
+ },
+ "value":20
+ }
+ ]
+ }
+ """)
+
+ j = json.loads(out)
+ assert j == expected
+
+ registry.reset()
+
+ out = dumps(registry, format="json")
+ expected = json.loads("""{
+ "sensors":
+ [
+ {
+ "kind":"RATE",
+ "labels":
+ {
+ "foo":"rate"
+ },
+ "value":0
+ },
+ {
+ "kind":"COUNTER",
+ "labels":
+ {
+ "foo":"counter"
+ },
+ "value":0
+ },
+ {
+ "kind":"GAUGE",
+ "labels":
+ {
+ "foo":"gauge"
+ },
+ "value":0
+ }
+ ]
+ }
+ """)
+
+ j = json.loads(out)
+ assert j == expected
+
+ registry.clear()
+
+ out = dumps(registry, format="json")
+ j = json.loads(out)
+ assert j == {}