Esempio n. 1
0
    def test_counter_without_reference(self):
        r = Registry(
            config=SidecarConfig({"sidecar.output-location": "memory"}))
        self.assertTrue(r.counter("test")._writer.is_empty())

        r.counter("test").increment()
        self.assertEqual("c:test:1", r.counter("test")._writer.last_line())
Esempio n. 2
0
 def test_publish_cleanup_noref(self):
     r = Registry()
     with r.start():
         id = r.counter('test').meterId
         r.counter('test').increment()
         self.assertTrue(id in r._meters)
         r._publish()
         self.assertFalse(id in r._meters)
Esempio n. 3
0
 def test_iterate(self):
     r = Registry()
     r.counter("counter")
     r.timer("timer")
     meters = 0
     for m in r:
         meters += 1
     self.assertEqual(2, meters)
Esempio n. 4
0
    def test_iterate(self):
        """Avoid breaking the API."""
        r = Registry(
            config=SidecarConfig({"sidecar.output-location": "memory"}))

        for _ in r:
            self.fail("registry should be empty")

        r.counter("counter")
        r.timer("timer")

        for _ in r:
            self.fail("registry no longer holds references to MeterIds")
Esempio n. 5
0
    def test_get_measurements_only_useful(self):
        r = Registry()
        with r.start():
            c = r.counter('counter')
            g = r.gauge('gauge')

            c.increment()
            g.set(1)
            ms = r._get_measurements()
            self.assertEqual(2, len(ms))
            r.gauge('nan').set(float('nan'))
            r.counter('zero')
            ms = r._get_measurements()
            self.assertEqual(0, len(ms))
Esempio n. 6
0
    def test_measurements_to_json(self):
        r = Registry()
        with r.start({'common_tags': {'nf.app': 'app'}}):
            c = r.counter('c')
            c.increment()
            r.gauge('g').set(42)
            ms = r._get_measurements()

            expected_counter = {
                'op': 'sum',
                'value': 1,
                'tags': {
                    'nf.app': 'app',
                    'name': 'c',
                    'statistic': 'count'
                }
            }
            expected_gauge = {
                'op': 'max',
                'value': 42,
                'tags': {
                    'nf.app': 'app',
                    'name': 'g',
                    'statistic': 'gauge'
                }
            }
            expected_entries = [expected_gauge, expected_counter]

            payload = r._measurements_to_json(ms)

            # sort payload so we ensure we get gauges first
            entries = sorted(self.payload_to_entries(payload),
                             key=lambda m: m.get('op'))
            self.assertEqual(expected_entries, entries)
Esempio n. 7
0
    def test_get_measurements_only_useful(self):
        r = Registry()

        with r.start():
            # meters with reference held
            c = r.counter('counter')
            g = r.gauge('gauge')
            c.increment()
            g.set(1)
            ms = r._get_measurements()
            self.assertEqual(2, len(ms))

            # meters without reference held; only the non-nan gauge will report
            r.gauge('gauge-nan').set(float('nan'))
            r.counter('counter-zero')
            ms = r._get_measurements()
            self.assertEqual(1, len(ms))
Esempio n. 8
0
 def test_close(self):
     r = Registry(
         config=SidecarConfig({"sidecar.output-location": "memory"}))
     c = r.counter("test")
     c.increment()
     self.assertEqual("c:test:1", c._writer.last_line())
     r.close()
     self.assertTrue(c._writer.is_empty())
Esempio n. 9
0
 def test_counter(self):
     r = Registry()
     c = r.counter("test")
     self.assertEqual(c.count(), 0)
     c.increment()
     self.assertEqual(c.count(), 1)
Esempio n. 10
0
 def test_timer_and_counter_same_name_different_tags(self):
     r = Registry()
     c = r.counter("check_value", tags=dict(tag="a"))
     t = r.timer("check_value", tags=dict(tag="b"))
     self.assertIsNot(c, t)
     self.assertIsNot(t, r.noopTimer)
Esempio n. 11
0
 def test_duplicate_distro_different_type(self):
     r = Registry()
     c = r.counter("check_value")
     d = r.distribution_summary("check_value")
     self.assertIsNot(c, d)
     self.assertIs(d, r.noopDistributionSummary)
Esempio n. 12
0
 def test_duplicate_timer_different_type(self):
     r = Registry()
     c = r.counter("check_value")
     t = r.timer("check_value")
     self.assertIsNot(c, t)
     self.assertIs(t, r.noopTimer)
Esempio n. 13
0
 def test_duplicate_counter_different_type(self):
     r = Registry()
     g = r.gauge("check_value", tags=dict(taga="a"))
     c = r.counter("check_value", tags=dict(taga="a"))
     self.assertIsNot(g, c)
     self.assertIs(c, r.noopCounter)
Esempio n. 14
0
 def test_duplicate_gauge_different_type(self):
     r = Registry()
     c = r.counter("check_value", tags=dict(taga="a"))
     g = r.gauge("check_value", tags=dict(taga="a"))
     self.assertIsNot(c, g)
     self.assertIs(g, r.noopGauge)
Esempio n. 15
0
 def test_counter_get(self):
     r = Registry()
     r.counter("test").increment()
     self.assertEqual(r.counter("test").count(), 1)