blob: 8bd1b7522da9b67238bac9f53530c6c660656ab0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import time
class KafkaMetric(object):
def __init__(self, lock, 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._lock = lock
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):
with self._lock:
self._config = config
def value(self, time_ms=None):
if time_ms is None:
# with (self._lock): This doesn't seem necessary?
time_ms = time.time() * 1000
return self.measurable.measure(self.config, time_ms)
|