blob: 7b51752335ba606e8c5d86b3ded60100c24dd8c0 (
plain) (
tree)
|
|
from libcpp cimport bool
from util.system.types cimport ui32, ui64, i64
from library.python.monlib.metric cimport (
TGauge, TCounter, TRate, TIntGauge, THistogram,
IHistogramCollectorPtr)
cdef class Gauge:
"""
Represents a floating point absolute value
"""
@staticmethod
cdef Gauge from_ptr(TGauge* native):
cdef Gauge wrapper = Gauge.__new__(Gauge)
wrapper.__wrapped = native
return wrapper
def set(self, double value):
"""
Set metric to the specified value
:param value: metric value
"""
self.__wrapped.Set(value)
def get(self):
"""
Get metric value.
:param value: metric value
"""
return self.__wrapped.Get()
def add(self, double value):
"""
Add value to metric.
:param value: metric value
"""
return self.__wrapped.Add(value)
cdef class IntGauge:
"""
Represents an integer absolute value
"""
@staticmethod
cdef IntGauge from_ptr(TIntGauge* native):
cdef IntGauge wrapper = IntGauge.__new__(IntGauge)
wrapper.__wrapped = native
return wrapper
def set(self, i64 value):
"""
Set metric to the specified value
:param value: metric value
"""
self.__wrapped.Set(value)
def get(self):
"""
Get metric value
:param value: metric value
"""
return self.__wrapped.Get()
def add(self, i64 value):
"""
Add value to metric.
:param value: metric value
"""
return self.__wrapped.Add(value)
def inc(self):
"""
Add 1 to metric.
"""
return self.__wrapped.Inc()
def dec(self):
"""
Add -1 to metric.
"""
return self.__wrapped.Dec()
cdef class Counter:
"""
Represents a counter value
"""
@staticmethod
cdef Counter from_ptr(TCounter* native):
cdef Counter wrapper = Counter.__new__(Counter)
wrapper.__wrapped = native
return wrapper
def get(self):
return self.__wrapped.Get()
def inc(self):
"""
Increment metric value
"""
return self.__wrapped.Inc()
def reset(self):
"""
Reset metric value to zero
"""
return self.__wrapped.Reset()
cdef class Rate:
"""
Represents a time derivative
"""
@staticmethod
cdef Rate from_ptr(TRate* native):
cdef Rate wrapper = Rate.__new__(Rate)
wrapper.__wrapped = native
return wrapper
def get(self):
return self.__wrapped.Get()
def inc(self):
"""
Increment metric value
"""
return self.__wrapped.Inc()
def add(self, ui64 value):
"""
Add the value to metric
:param value: value to add to metric
"""
return self.__wrapped.Add(value)
cdef class Histogram:
"""
Represents some value distribution
"""
@staticmethod
cdef Histogram from_ptr(THistogram* native):
cdef Histogram wrapper = Histogram.__new__(Histogram, 0)
wrapper.__is_owner = False
wrapper.__wrapped = native
return wrapper
def __dealloc__(self):
if self.__is_owner:
del self.__wrapped
def collect(self, double value, ui32 count=1):
"""
Add a few points with same value to the distribution
:param value: points' value
:param value: point count
"""
return self.__wrapped.Record(value, count)
|