def __init__(self, metric_name, metric_value, metric_type, metric_creation_timestamp=None): assert PanoptesValidators.valid_nonempty_string( metric_name), 'metric_name must be a non-empty str' assert PanoptesValidators.valid_number( metric_value), 'metric_value must be number' assert PanoptesMetricValidators.valid_panoptes_metric_type( metric_type ), u'metric_type must be an attribute of PanoptesMetricType' assert (metric_creation_timestamp is None) or PanoptesValidators.valid_number(metric_creation_timestamp), \ u'metric_creation_timestamp should be None or a number' if not _VALID_KEY.match(metric_name): raise ValueError( u'metric name "%s" has to match pattern: (letter|"_") (letter | digit | "_")*' % metric_name) self.__data = dict() self.__data[u'metric_creation_timestamp'] = round(metric_creation_timestamp, METRICS_TIMESTAMP_PRECISION) if \ metric_creation_timestamp is not None else round(time(), METRICS_TIMESTAMP_PRECISION) self.__data[u'metric_name'] = metric_name self.__data[u'metric_value'] = metric_value self.__metric_type_raw = metric_type self.__data[u'metric_type'] = METRIC_TYPE_NAMES[metric_type].lower()
def __init__(self, tasks=1000, seconds=14400, memory_growth_mb=200, splay_percent=0): assert PanoptesValidators.valid_nonzero_integer( tasks), u'tasks must a integer greater than zero' assert PanoptesValidators.valid_nonzero_integer( seconds), u'seconds must a integer greater than zero' assert PanoptesValidators.valid_nonzero_integer( memory_growth_mb ), u'memory_growth_mb must a integer greater than zero' assert PanoptesValidators.valid_number( splay_percent), u'splay_percent must a number' assert 0 <= splay_percent <= 100, u'splay_percent must be a number between 0 and 100, inclusive' self._start_time = time.time() if platform.system() == u'Linux': # On Linux platforms, memory is reported in kilobytes self._memory_divider = 1024 else: # On all other platforms, assume bytes (true for Mac OS X) self._memory_divider = 1048576 self._initial_memory_mb = self._get_memory_utilization_in_mb() self._task_count = 0 self._tasks = tasks self._seconds = seconds self._memory_growth_mb = memory_growth_mb self._splay_percent = float(splay_percent) / 100 self._adjusted_tasks = round( self._tasks * (1 + (random.random() * self._splay_percent))) self._adjusted_seconds = round( self._seconds * (1 + (random.random() * self._splay_percent))) self._adjusted_memory_growth_mb = round( self._memory_growth_mb * (1 + (random.random() * self._splay_percent)))
def test_valid_number(self): self.assertFalse(PanoptesValidators.valid_number(False)) self.assertFalse(PanoptesValidators.valid_number(u"1.234")) self.assertTrue(PanoptesValidators.valid_number(2**(2**(2**(2**2))))) self.assertTrue(PanoptesValidators.valid_number(1J))