 64e9cebfa5
			
		
	
	64e9cebfa5
	
	
	
		
			
			There is no straight translation for the JMX reporter into python, so I'll do something else in a separate commit.
		
			
				
	
	
		
			28 lines
		
	
	
		
			730 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			730 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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))
 |