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
 | 
