protected AbstractKafkaClient(KafkaSinkOptions options) { Contract.Requires<ArgumentNullException>(options != null); this.options = options; this.producerConfiguration = new ProducerConfiguration(options.Topic); }
/// <summary> /// Initializes a new instance of the <see cref="KafkaSink"/> class. /// </summary> /// <param name="kafkaClient"> /// The kafka Client. /// </param> /// <param name="options"> /// The configuration options. /// </param> public KafkaSink(AbstractKafkaClient kafkaClient, KafkaSinkOptions options) : base(options.BatchPostingLimit, options.Period) { Contract.Requires<ArgumentNullException>(options != null); Contract.Requires<ArgumentNullException>(kafkaClient != null); this.kafkaClient = kafkaClient; this.jsonFormatter = new JsonFormatter(renderMessage: options.RenderSerilogMessage); }
public static LoggerConfiguration Kafka( this LoggerSinkConfiguration loggerConfiguration, KafkaSinkOptions options) { Contract.Requires(loggerConfiguration != null); Contract.Requires(options != null); Contract.Ensures(Contract.Result<LoggerConfiguration>() != null); var kafkaClient = new KafkaClient(options); var kafkaSink = new KafkaSink(kafkaClient, options); var result = loggerConfiguration.Sink(kafkaSink); Contract.Assume(result != null); return result; }
public static LoggerConfiguration Kafka( this LoggerSinkConfiguration loggerConfiguration, KafkaSinkOptions options) { Contract.Requires(loggerConfiguration != null); Contract.Requires(options != null); Contract.Ensures(Contract.Result <LoggerConfiguration>() != null); var kafkaClient = new KafkaClient(options); var kafkaSink = new KafkaSink(kafkaClient, options); var result = loggerConfiguration.Sink(kafkaSink); Contract.Assume(result != null); return(result); }
public void CanSendEmptyMessageBatch() { // Given var options = new KafkaSinkOptions("topic", new[] { new Uri("http://sample") }); var kafkaClient = new KafkaClient(options); var systemUnderTest = new KafkaSink(kafkaClient, options); var logEvents = new LogEvent[0]; // When var result = systemUnderTest.EmitBatchInternalAsync(logEvents); // Then Assert.IsTrue(result.IsCompleted); Assert.IsFalse(result.IsFaulted); }
public void CanSendEmptyMessageBatch() { // Given var options = new KafkaSinkOptions("topic", new[] { new Uri("http://sample") }); var kafkaClient = new KafkaClient(options); var systemUnderTest = new KafkaSink(kafkaClient, options); var logEvents = new LogEvent[0]; // When var result = systemUnderTest.EmitBatchInternalAsync(logEvents); // Then Assert.IsTrue(result.IsCompleted); Assert.IsFalse(result.IsFaulted); }
public async Task KafkaClientConnectionTest() { // Given const string Topic = "test"; var brokers = new[] { new Uri("localhost:9092") }; var options = new KafkaSinkOptions(Topic, brokers); var kafkaClient = new KafkaClient(options); var message = new Message { Value = Encoding.UTF8.GetBytes("{'message' : 'This is a test message'}") }; // When await kafkaClient.SendMessagesAsync(new[] { message }).ConfigureAwait(false); kafkaClient.Dispose(); // Then Assert.IsTrue(true); }
public async Task KafkaClientConnectionTest() { // Given const string Topic = "test"; var brokers = new[] { new Uri("localhost:9092") }; var options = new KafkaSinkOptions(Topic, brokers); var kafkaClient = new KafkaClient(options); var message = new Message { Value = Encoding.UTF8.GetBytes("{'message' : 'This is a test message'}") }; // When await kafkaClient.SendMessagesAsync(new[] { message }).ConfigureAwait(false); kafkaClient.Dispose(); // Then Assert.IsTrue(true); }
internal KafkaClient(KafkaSinkOptions options) : base(options) { Contract.Requires<ArgumentNullException>(options != null); }