35 lines
776 B
Python
35 lines
776 B
Python
from __future__ import absolute_import
|
|
|
|
import abc
|
|
|
|
from kafka.metrics.stat import AbstractStat
|
|
|
|
|
|
class AbstractCompoundStat(AbstractStat):
|
|
"""
|
|
A compound stat is a stat where a single measurement and associated
|
|
data structure feeds many metrics. This is the example for a
|
|
histogram which has many associated percentiles.
|
|
"""
|
|
__metaclass__ = abc.ABCMeta
|
|
|
|
def stats(self):
|
|
"""
|
|
Return list of NamedMeasurable
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
|
|
class NamedMeasurable(object):
|
|
def __init__(self, metric_name, measurable_stat):
|
|
self._name = metric_name
|
|
self._stat = measurable_stat
|
|
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
@property
|
|
def stat(self):
|
|
return self._stat
|