34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import absolute_import
 | |
| 
 | |
| import sys
 | |
| 
 | |
| 
 | |
| class MetricConfig(object):
 | |
|     """Configuration values for metrics"""
 | |
|     def __init__(self, quota=None, samples=2, event_window=sys.maxsize,
 | |
|                  time_window_ms=30 * 1000, tags=None):
 | |
|         """
 | |
|         Arguments:
 | |
|             quota (Quota, optional): Upper or lower bound of a value.
 | |
|             samples (int, optional): Max number of samples kept per metric.
 | |
|             event_window (int, optional): Max number of values per sample.
 | |
|             time_window_ms (int, optional): Max age of an individual sample.
 | |
|             tags (dict of {str: str}, optional): Tags for each metric.
 | |
|         """
 | |
|         self.quota = quota
 | |
|         self._samples = samples
 | |
|         self.event_window = event_window
 | |
|         self.time_window_ms = time_window_ms
 | |
|         # tags should be OrderedDict (not supported in py26)
 | |
|         self.tags = tags if tags else {}
 | |
| 
 | |
|     @property
 | |
|     def samples(self):
 | |
|         return self._samples
 | |
| 
 | |
|     @samples.setter
 | |
|     def samples(self, value):
 | |
|         if value < 1:
 | |
|             raise ValueError('The number of samples must be at least 1.')
 | |
|         self._samples = value
 | 
