Example #1
0
 def test_reconnect(self):
     self.reader = FlakyReader(["baz"], self.config.buffer_size)
     self.client = Worker(self.reader, self.encoder, self.writer,
                          self.config)
     self.client.consume()
     self.assertTrue(self.writer.write.called)
     self.writer.write.assert_called_once_with(["baz"] *
                                               self.config.buffer_size)
Example #2
0
 def test_reconnect(self):
     """
     The worker should reconnect when the connection is interrupted.
     """
     reader = FlakyReader("baz", self.config.buffer_size)
     client = Worker(reader, self.encoder, self.writer, self.config)
     client.consume()
     self.assertTrue(self.writer.write.called)
     self.writer.write.assert_called_once_with(["baz"] *
                                               self.config.buffer_size)
Example #3
0
 def test_flush(self):
     """
     Messages should be flushed to the writer when the buffer is full.
     """
     reader = DummyReader(["bar"], self.config.buffer_size)
     client = Worker(reader, self.encoder, self.writer, self.config)
     client.consume()
     self.assertTrue(self.writer.write.called)
     self.writer.write.assert_called_once_with(["bar"] *
                                               self.config.buffer_size)
 def test_buffer_timeout(self):
     """
     If the buffer has timed out flush to the writer.
     """
     reader = TimeoutReader("bar", self.config.buffer_size,
                            self.config.buffer_timeout)
     client = Worker(reader, self.encoder, self.writer, self.config)
     client.consume()
     self.assertTrue(self.writer.write.called)
     self.writer.write.assert_called_once_with(
         ["bar"] * int(self.config.buffer_size - 1))
    def test_create_database(self, _):
        """
        Retry creating the InfluxDB database in case of a connection error
        """
        reader = DummyReader(["bar"], self.config.buffer_size)
        writer_with_connection_error = Mock()
        writer_with_connection_error.create_database = Mock(
            side_effect=[ConnectionError, None])

        client = Worker(reader, self.encoder, writer_with_connection_error,
                        self.config)
        client.consume()
        self.assertEqual(
            writer_with_connection_error.create_database.call_count, 2)
Example #6
0
def start_consumer(config):
    """
    Start metrics consumer
    :param config:
    """
    logging.debug("Initializing Kafka Consumer")
    reader = load_reader(config.kafka_reader, config.kafka_host,
                         config.kafka_port, config.kafka_group,
                         config.kafka_topic)
    logging.debug("Initializing connection to InfluxDB at %s:%s",
                  config.influxdb_host, config.influxdb_port)
    writer = create_writer(config)
    logging.debug("Initializing message encoder: %s", config.encoder)
    encoder = load_encoder(config.encoder)
    client = Worker(reader, encoder, writer, config)
    client.consume()
Example #7
0
 def test_flush(self):
     self.reader = DummyReader(["bar"], self.config.buffer_size)
     self.client = Worker(self.reader, self.encoder, self.writer,
                          self.config)
     self.client.consume()
     self.assertTrue(self.writer.write.called)
Example #8
0
 def test_buffering(self):
     self.reader = DummyReader(["foo"], self.config.buffer_size - 1)
     self.client = Worker(self.reader, self.encoder, self.writer,
                          self.config)
     self.client.consume()
     self.assertFalse(self.writer.write.called)