Exemple #1
0
    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()
Exemple #2
0
    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)))
Exemple #3
0
 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))