1234567891011121314151617181920212223242526272829 |
- from __future__ import absolute_import
- 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))
|