File: kafka_metric.py

package info (click to toggle)
python-kafka 2.0.2-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,740 kB
  • sloc: python: 20,457; makefile: 210; sh: 76
file content (36 lines) | stat: -rw-r--r-- 933 bytes parent folder | download | duplicates (4)
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
from __future__ import absolute_import

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)