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/kafka_metric.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/kafka_metric.py')
-rw-r--r-- | kafka/metrics/kafka_metric.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/kafka/metrics/kafka_metric.py b/kafka/metrics/kafka_metric.py new file mode 100644 index 0000000..75d32a4 --- /dev/null +++ b/kafka/metrics/kafka_metric.py @@ -0,0 +1,34 @@ +import time + + +class KafkaMetric(object): + # NOTE java constructor takes a lock instance + def __init__(self, metric_name, measurable, config): + if not metric_name: + raise ValueError('metric_name must be non-empty') + if not measurable: + raise ValueError('measurable must be non-empty') + self._metric_name = metric_name + self._measurable = measurable + self._config = config + + @property + def metric_name(self): + return self._metric_name + + @property + def measurable(self): + return self._measurable + + @property + def config(self): + return self._config + + @config.setter + def config(self, config): + self._config = config + + def value(self, time_ms=None): + if time_ms is None: + time_ms = time.time() * 1000 + return self.measurable.measure(self.config, time_ms) |