diff options
author | Zack Dever <zackdever@gmail.com> | 2016-04-14 11:02:01 -0700 |
---|---|---|
committer | Zack Dever <zackdever@gmail.com> | 2016-04-14 11:02:01 -0700 |
commit | cf679ae387519f658f17b2da2d05ff84834cb1f5 (patch) | |
tree | 5618627ab6919b6fd4cd476e801c0f9bf449d716 /kafka/metrics/measurable.py | |
parent | 0c94b83a2dff8113b5fd7c16df8a11ca03c4377b (diff) | |
parent | e2b340c4408801515f5e924aec066af983aa5c57 (diff) | |
download | kafka-python-cf679ae387519f658f17b2da2d05ff84834cb1f5.tar.gz |
Merge pull request #637 from zackdever/metrics
Metrics java port
Diffstat (limited to 'kafka/metrics/measurable.py')
-rw-r--r-- | kafka/metrics/measurable.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/kafka/metrics/measurable.py b/kafka/metrics/measurable.py new file mode 100644 index 0000000..ef096f3 --- /dev/null +++ b/kafka/metrics/measurable.py @@ -0,0 +1,27 @@ +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)) |