summaryrefslogtreecommitdiff
path: root/kafka/metrics/kafka_metric.py
diff options
context:
space:
mode:
authorZack Dever <zackdever@gmail.com>2016-04-14 11:02:01 -0700
committerZack Dever <zackdever@gmail.com>2016-04-14 11:02:01 -0700
commitcf679ae387519f658f17b2da2d05ff84834cb1f5 (patch)
tree5618627ab6919b6fd4cd476e801c0f9bf449d716 /kafka/metrics/kafka_metric.py
parent0c94b83a2dff8113b5fd7c16df8a11ca03c4377b (diff)
parente2b340c4408801515f5e924aec066af983aa5c57 (diff)
downloadkafka-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.py34
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)