Exemplo n.º 1
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)
Exemplo n.º 2
0
    def test_get_measurements_gauge_not_deleted_before_ttl(self):
        clock = ManualClock()
        r = Registry(clock=clock)

        with r.start():
            r.gauge('gauge').set(1)
            ms = r._get_measurements()
            self.assertEqual(1, len(ms))

            # two cycles are required to delete a gauge after it expires
            ms = r._get_measurements()
            self.assertEqual(1, len(ms))
            ms = r._get_measurements()
            self.assertEqual(1, len(ms))
Exemplo n.º 3
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))
Exemplo n.º 4
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))
Exemplo n.º 5
0
    def test_gauge_ttl_seconds(self):
        r = Registry(
            config=SidecarConfig({"sidecar.output-location": "memory"}))

        g = r.gauge("test", ttl_seconds=120)
        self.assertTrue(g._writer.is_empty())

        g.set(42)
        self.assertEqual("g,120:test:42", g._writer.last_line())
Exemplo n.º 6
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)
Exemplo n.º 7
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)