Пример #1
0
 def test_prefix_added(self):
     """Namespace prefix gets added to metrics as they are read."""
     thread = tcollector.ReaderThread(1, 10, True, "my.namespace.")
     collector = tcollector.Collector("c", 1, "c")
     line = "mymetric 123 12 a=b"
     thread.process_line(collector, line)
     self.assertEqual(thread.readerq.get(), "my.namespace." + line)
     self.assertEqual(collector.lines_received, 1)
     self.assertEqual(collector.lines_invalid, 0)
Пример #2
0
    def test_bad_float(self):
        """Values that aren't ints/floats aren't sent to OpenTSDB.

        This can happen if a specific collector is buggy.
        """
        thread = tcollector.ReaderThread(1, 10, True)
        collector = tcollector.Collector("c", 1, "c")
        for line in ["xxx", "mymetric 123 True a=b"]:
            thread.process_line(collector, line)
        self.assertEqual(thread.readerq.qsize(), 0)
        self.assertEqual(collector.lines_received, 2)
        self.assertEqual(collector.lines_invalid, 2)
Пример #3
0
 def test_ok_lines(self):
     """Good lines are passed on to OpenTSDB."""
     thread = tcollector.ReaderThread(1, 10, True)
     collector = tcollector.Collector("c", 1, "c")
     for line in [
             "mymetric 123.24 12 a=b", "mymetric 124 12.7 a=b",
             "mymetric 125 12.7"
     ]:
         thread.process_line(collector, line)
         self.assertEqual(thread.readerq.qsize(), 1, line)
         self.assertEqual(thread.readerq.get(), line)
     self.assertEqual(collector.lines_received, 3)
     self.assertEqual(collector.lines_invalid, 0)
Пример #4
0
    def test_bool_true_converted_int(self):
        """Values that aren't ints/floats aren't sent to OpenTSDB.

        This can happen if a specific collector is buggy.
        """
        thread = tcollector.ReaderThread(1, 10, True)  # pylint:disable=no-member
        collector = tcollector.Collector("c", 1, "c")  # pylint:disable=no-member
        line = "mymetric 123 True a=b"
        expected = "mymetric 123 1 a=b"
        thread.process_line(collector, line)
        self.assertEqual(thread.readerq.qsize(), 1, line)
        self.assertEqual(thread.readerq.get(), line)
        self.assertEqual(collector.lines_received, 1)
        self.assertEqual(collector.lines_invalid, 0)
Пример #5
0
 def send_query_with_response_code(self, response_code):
     """
     Send a HTTP query using SenderThread, with server that returns given
     response code.
     """
     self.run_fake_opentsdb(response_code)
     reader = tcollector.ReaderThread(1, 10, True)
     sender = tcollector.SenderThread(reader,
                                      False, [("localhost", 4242)],
                                      False, {},
                                      http=True,
                                      http_api_path="api/put")
     sender.sendq.append("mymetric 123 12 a=b")
     sender.send_data()
     return sender