
There is no straight translation for the JMX reporter into python, so I'll do something else in a separate commit.
28 lines
730 B
Python
28 lines
730 B
Python
import abc
|
|
|
|
|
|
class AbstractMeasurable(object):
|
|
"""A measurable quantity that can be registered as a metric"""
|
|
@abc.abstractmethod
|
|
def measure(self, config, now):
|
|
"""
|
|
Measure this quantity and return the result
|
|
|
|
Arguments:
|
|
config (MetricConfig): The configuration for this metric
|
|
now (int): The POSIX time in milliseconds the measurement
|
|
is being taken
|
|
|
|
Returns:
|
|
The measured value
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
|
|
class AnonMeasurable(AbstractMeasurable):
|
|
def __init__(self, measure_fn):
|
|
self._measure_fn = measure_fn
|
|
|
|
def measure(self, config, now):
|
|
return float(self._measure_fn(config, now))
|