def test_counter(self):

        # Add some metrics
        data = (
            ({'data': 1}, 100),
            ({'data': "2"}, 200),
            ({'data': 3}, 300),
            ({'data': 1}, 400),
        )
        c = Counter("test_counter", "Test Counter.", {'test': "test_counter"})
        self.registry.register(c)

        for i in data:
            c.set(i[0], i[1])

        headers = {'accept': 'text/plain; version=0.0.4'}
        url = urllib.parse.urljoin(TEST_URL, TEST_METRICS_PATH[1:])
        r = requests.get(url, headers=headers)

        valid_data = """# HELP test_counter Test Counter.
# TYPE test_counter counter
test_counter{data="1",test="test_counter"} 400
test_counter{data="2",test="test_counter"} 200
test_counter{data="3",test="test_counter"} 300
"""
        self.assertEqual("text/plain; version=0.0.4; charset=utf-8",
                         r.headers['content-type'])
        self.assertEqual(200, r.status_code)
        self.assertEqual(valid_data, r.text)
Beispiel #2
0
def init_metrics(registry):
    events_in_metric = Counter('events_in', 'Events received')
    events_out_metric = Counter('events_out', 'Events published')
    kafka_write = Summary('kafka_write', 'Kafka write time')
    kafka_read = Summary('kafka_read', 'Kafka read time')

    registry.register(events_in_metric)
    registry.register(events_out_metric)
    registry.register(kafka_write)
    registry.register(kafka_read)

    return {
        'events_in': events_in_metric,
        'events_out': events_out_metric,
        'kafka_write': kafka_write,
        'kafka_read': kafka_read
    }
Beispiel #3
0
    def setUp(self):
        self.data = {
            'name': "logged_users_total",
            'help_text': "Logged users in the application",
            'const_labels': {
                "app": "my_app"
            },
        }

        self.c = Counter(**self.data)
    def test_push_job_ping(self):
        job_name = "my-job"
        p = Pusher(job_name, TEST_URL)
        registry = Registry()
        c = Counter("total_requests", "Total requests.", {})
        registry.register(c)

        c.inc({
            'url': "/p/user",
        })

        # Push to the pushgateway
        p.replace(registry)

        # Check the objects that setted the server thread
        self.assertEqual(Pusher.PATH.format(job_name), self.request['path'])
    def test_push_delete(self):
        job_name = "my-job"
        p = Pusher(job_name, TEST_URL)
        registry = Registry()
        counter = Counter("counter_test", "A counter.", {'type': "counter"})
        registry.register(counter)

        counter_data = (({'c_sample': '1', 'c_subsample': 'b'}, 400), )

        [counter.set(c[0], c[1]) for c in counter_data]
        valid_result = b'[\n\x0ccounter_test\x12\nA counter.\x18\x00"=\n\r\n\x08c_sample\x12\x011\n\x10\n\x0bc_subsample\x12\x01b\n\x0f\n\x04type\x12\x07counter\x1a\t\t\x00\x00\x00\x00\x00\x00y@'

        # Push to the pushgateway
        p.delete(registry)

        # Check the object that setted the server thread
        self.assertEqual("DELETE", self.request['method'])
        self.assertEqual(valid_result, self.request['body'])
    def test_all(self):
        format_times = 10

        counter_data = (
            ({'c_sample': '1'}, 100),
            ({'c_sample': '2'}, 200),
            ({'c_sample': '3'}, 300),
            ({'c_sample': '1', 'c_subsample': 'b'}, 400),
        )

        gauge_data = (
            ({'g_sample': '1'}, 500),
            ({'g_sample': '2'}, 600),
            ({'g_sample': '3'}, 700),
            ({'g_sample': '1', 'g_subsample': 'b'}, 800),
        )

        summary_data = (
            ({'s_sample': '1'}, range(1000, 2000, 4)),
            ({'s_sample': '2'}, range(2000, 3000, 20)),
            ({'s_sample': '3'}, range(3000, 4000, 13)),
            ({'s_sample': '1', 's_subsample': 'b'}, range(4000, 5000, 47)),
        )

        registry = Registry()
        counter = Counter("counter_test", "A counter.", {'type': "counter"})
        gauge = Gauge("gauge_test", "A gauge.", {'type': "gauge"})
        summary = Summary("summary_test", "A summary.", {'type': "summary"})

        self.registry.register(counter)
        self.registry.register(gauge)
        self.registry.register(summary)

        # Add data
        [counter.set(c[0], c[1]) for c in counter_data]
        [gauge.set(g[0], g[1]) for g in gauge_data]
        [summary.add(i[0], s) for i in summary_data for s in i[1]]

        registry.register(counter)
        registry.register(gauge)
        registry.register(summary)

        valid_data = """# HELP counter_test A counter.
# TYPE counter_test counter
counter_test{c_sample="1",c_subsample="b",type="counter"} 400
counter_test{c_sample="1",type="counter"} 100
counter_test{c_sample="2",type="counter"} 200
counter_test{c_sample="3",type="counter"} 300
# HELP gauge_test A gauge.
# TYPE gauge_test gauge
gauge_test{g_sample="1",g_subsample="b",type="gauge"} 800
gauge_test{g_sample="1",type="gauge"} 500
gauge_test{g_sample="2",type="gauge"} 600
gauge_test{g_sample="3",type="gauge"} 700
# HELP summary_test A summary.
# TYPE summary_test summary
summary_test_count{s_sample="1",s_subsample="b",type="summary"} 22
summary_test_count{s_sample="1",type="summary"} 250
summary_test_count{s_sample="2",type="summary"} 50
summary_test_count{s_sample="3",type="summary"} 77
summary_test_sum{s_sample="1",s_subsample="b",type="summary"} 98857.0
summary_test_sum{s_sample="1",type="summary"} 374500.0
summary_test_sum{s_sample="2",type="summary"} 124500.0
summary_test_sum{s_sample="3",type="summary"} 269038.0
summary_test{quantile="0.5",s_sample="1",s_subsample="b",type="summary"} 4235.0
summary_test{quantile="0.5",s_sample="1",type="summary"} 1272.0
summary_test{quantile="0.5",s_sample="2",type="summary"} 2260.0
summary_test{quantile="0.5",s_sample="3",type="summary"} 3260.0
summary_test{quantile="0.9",s_sample="1",s_subsample="b",type="summary"} 4470.0
summary_test{quantile="0.9",s_sample="1",type="summary"} 1452.0
summary_test{quantile="0.9",s_sample="2",type="summary"} 2440.0
summary_test{quantile="0.9",s_sample="3",type="summary"} 3442.0
summary_test{quantile="0.99",s_sample="1",s_subsample="b",type="summary"} 4517.0
summary_test{quantile="0.99",s_sample="1",type="summary"} 1496.0
summary_test{quantile="0.99",s_sample="2",type="summary"} 2500.0
summary_test{quantile="0.99",s_sample="3",type="summary"} 3494.0
"""

        headers = {'accept': 'text/plain; version=0.0.4'}
        url = urllib.parse.urljoin(TEST_URL, TEST_METRICS_PATH[1:])
        r = requests.get(url, headers=headers)

        self.assertEqual("text/plain; version=0.0.4; charset=utf-8",
                             r.headers['content-type'])
        self.assertEqual(200, r.status_code)
        self.assertEqual(valid_data, r.text)
    def test_register_counter(self):
        r = Registry()
        r.register(Counter(**self.data))

        self.assertEqual(1, len(r.collectors))