예제 #1
0
 def setUp(self):
     self.metrics = {
         "metric1": CountMetric(),
         "metric2": MultiCountMetric(),
         "metric3": MeanReducedMetric(),
         "metric4": MultiMeanReducedMetric()
     }
     self.metrics_helper = BaseMetricsHelper(self.metrics)
     self.metrics_collector = mock_generator.MockMetricsCollector()
예제 #2
0
 def setUp(self):
   self.metrics = {"metric1": CountMetric(),
                   "metric2": MultiCountMetric(),
                   "metric3": MeanReducedMetric(),
                   "metric4": MultiMeanReducedMetric()}
   self.metrics_helper = BaseMetricsHelper(self.metrics)
   self.metrics_collector = mock_generator.MockMetricsCollector()
예제 #3
0
class BaseMetricsHelperTest(unittest.TestCase):
    def setUp(self):
        self.metrics = {
            "metric1": CountMetric(),
            "metric2": MultiCountMetric(),
            "metric3": MeanReducedMetric(),
            "metric4": MultiMeanReducedMetric()
        }
        self.metrics_helper = BaseMetricsHelper(self.metrics)
        self.metrics_collector = mock_generator.MockMetricsCollector()

    def tearDown(self):
        self.metrics = None
        self.metrics_helper = None
        self.metrics_collector = None

    def test_register_metrics(self):
        self.metrics_helper.register_metrics(self.metrics_collector, 60)
        for name, metric in self.metrics.items():
            self.assertEqual(self.metrics_collector.metrics_map[name], metric)
        self.assertEqual(
            len(self.metrics_collector.time_bucket_in_sec_to_metrics_name[60]),
            4)
        self.assertIn(60, self.metrics_collector.registered_timers)

    def test_update_count(self):
        self.metrics_helper.update_count("metric1")
        self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 1)
        self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 0)
        self.metrics_helper.update_count("metric1", incr_by=10)
        self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 10)

        self.metrics_helper.update_count("metric2", key="key1")
        self.assertEqual(self.metrics["metric2"].get_value_and_reset(),
                         {"key1": 1})
        self.assertEqual(self.metrics["metric2"].get_value_and_reset(),
                         {"key1": 0})
        self.metrics_helper.update_count("metric2", incr_by=10, key="key2")
        self.assertEqual(self.metrics["metric2"].get_value_and_reset(), {
            "key1": 0,
            "key2": 10
        })

    def test_update_reduced_metric(self):
        for i in range(1, 11):
            self.metrics_helper.update_reduced_metric("metric3", i)
        self.assertEqual(self.metrics["metric3"].get_value_and_reset(), 5.5)
        self.assertIsNone(self.metrics["metric3"].get_value_and_reset())

        for i in range(1, 11):
            self.metrics_helper.update_reduced_metric("metric4", i, key="key1")
            self.metrics_helper.update_reduced_metric("metric4",
                                                      i * 2,
                                                      key="key2")
            self.metrics_helper.update_reduced_metric("metric4",
                                                      i * 3,
                                                      key="key3")
        self.assertEqual(self.metrics["metric4"].get_value_and_reset(), {
            "key1": 5.5,
            "key2": 11,
            "key3": 16.5
        })
        self.assertEqual(self.metrics["metric4"].get_value_and_reset(), {
            "key1": None,
            "key2": None,
            "key3": None
        })
예제 #4
0
class BaseMetricsHelperTest(unittest.TestCase):
  def setUp(self):
    self.metrics = {"metric1": CountMetric(),
                    "metric2": MultiCountMetric(),
                    "metric3": MeanReducedMetric(),
                    "metric4": MultiMeanReducedMetric()}
    self.metrics_helper = BaseMetricsHelper(self.metrics)
    self.metrics_collector = mock_generator.MockMetricsCollector()

  def tearDown(self):
    self.metrics = None
    self.metrics_helper = None
    self.metrics_collector = None

  def test_register_metrics(self):
    self.metrics_helper.register_metrics(self.metrics_collector, 60)
    for name, metric in self.metrics.iteritems():
      self.assertEqual(self.metrics_collector.metrics_map[name], metric)
    self.assertEqual(len(self.metrics_collector.time_bucket_in_sec_to_metrics_name[60]), 4)
    self.assertIn(60, self.metrics_collector.registered_timers)

  def test_update_count(self):
    self.metrics_helper.update_count("metric1")
    self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 1)
    self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 0)
    self.metrics_helper.update_count("metric1", incr_by=10)
    self.assertEqual(self.metrics["metric1"].get_value_and_reset(), 10)

    self.metrics_helper.update_count("metric2", key="key1")
    self.assertEqual(self.metrics["metric2"].get_value_and_reset(), {"key1": 1})
    self.assertEqual(self.metrics["metric2"].get_value_and_reset(), {"key1": 0})
    self.metrics_helper.update_count("metric2", incr_by=10, key="key2")
    self.assertEqual(self.metrics["metric2"].get_value_and_reset(), {"key1": 0,
                                                                     "key2": 10})

  def test_update_reduced_metric(self):
    for i in range(1, 11):
      self.metrics_helper.update_reduced_metric("metric3", i)
    self.assertEqual(self.metrics["metric3"].get_value_and_reset(), 5.5)
    self.assertIsNone(self.metrics["metric3"].get_value_and_reset())

    for i in range(1, 11):
      self.metrics_helper.update_reduced_metric("metric4", i, key="key1")
      self.metrics_helper.update_reduced_metric("metric4", i * 2, key="key2")
      self.metrics_helper.update_reduced_metric("metric4", i * 3, key="key3")
    self.assertEqual(self.metrics["metric4"].get_value_and_reset(), {"key1": 5.5,
                                                                     "key2": 11,
                                                                     "key3": 16.5})
    self.assertEqual(self.metrics["metric4"].get_value_and_reset(), {"key1": None,
                                                                     "key2": None,
                                                                     "key3": None})