Example #1
0
 def test_duplicate_register_raises(self):
     fake_metric = mock.Mock(_name='foo')
     phake_metric = mock.Mock(_name='foo')
     interface.register(fake_metric)
     with self.assertRaises(errors.MonitoringDuplicateRegistrationError):
         interface.register(phake_metric)
     self.assertEqual(1, len(interface.state.metrics))
Example #2
0
 def test_register_unregister(self):
     fake_metric = mock.Mock()
     self.assertEqual(0, len(interface.state.metrics))
     interface.register(fake_metric)
     self.assertEqual(1, len(interface.state.metrics))
     interface.unregister(fake_metric)
     self.assertEqual(0, len(interface.state.metrics))
Example #3
0
 def test_duplicate_register_raises(self):
   fake_metric = mock.Mock(_name='foo')
   phake_metric = mock.Mock(_name='foo')
   interface.register(fake_metric)
   with self.assertRaises(errors.MonitoringDuplicateRegistrationError):
     interface.register(phake_metric)
   self.assertEqual(1, len(interface.state.metrics))
Example #4
0
 def test_register_unregister(self):
   fake_metric = mock.Mock()
   self.assertEqual(0, len(interface.state.metrics))
   interface.register(fake_metric)
   self.assertEqual(1, len(interface.state.metrics))
   interface.unregister(fake_metric)
   self.assertEqual(0, len(interface.state.metrics))
Example #5
0
    def __init__(self, name, target=None, fields=None):
        """Create an instance of a Metric.

    Args:
      name (str): the file-like name of this metric
      fields (dict): a set of key-value pairs to be set as default metric fields
      target (Target): a Target to be used with this metric. This should be
                       specified only rarely; usually the library's default
                       Target will be used (set up by the top-level process).
    """
        self._name = name.lstrip('/')
        self._values = {}
        self._target = target
        fields = fields or {}
        if len(fields) > 7:
            raise errors.MonitoringTooManyFieldsError(self._name, fields)
        self._fields = fields
        self._normalized_fields = self._normalize_fields(self._fields)
        self._thread_lock = threading.Lock()

        interface.register(self)
Example #6
0
  def __init__(self, name, target=None, fields=None):
    """Create an instance of a Metric.

    Args:
      name (str): the file-like name of this metric
      fields (dict): a set of key-value pairs to be set as default metric fields
      target (Target): a Target to be used with this metric. This should be
                       specified only rarely; usually the library's default
                       Target will be used (set up by the top-level process).
    """
    self._name = name.lstrip('/')
    self._values = {}
    self._target = target
    fields = fields or {}
    if len(fields) > 7:
      raise errors.MonitoringTooManyFieldsError(self._name, fields)
    self._fields = fields
    self._normalized_fields = self._normalize_fields(self._fields)
    self._thread_lock = threading.Lock()

    interface.register(self)
Example #7
0
 def test_identical_register(self):
     fake_metric = mock.Mock(_name='foo')
     interface.register(fake_metric)
     interface.register(fake_metric)
     self.assertEqual(1, len(interface.state.metrics))
Example #8
0
 def test_identical_register(self):
   fake_metric = mock.Mock(_name='foo')
   interface.register(fake_metric)
   interface.register(fake_metric)
   self.assertEqual(1, len(interface.state.metrics))