public override ConsumeResult <TKey, TValue> Consume(CancellationToken cancellationToken)
        {
            var consumerResult = Stats.Metric().ConsumeLatency(() => Task.FromResult(Consumer.Consume(cancellationToken))).GetAwaiter().GetResult();

            Stats.Metric().ConsumedIncrement().GetAwaiter().GetResult();
            return(consumerResult);
        }
        public override IKafkaConsumer <TKey, TValue> CreateConsumer()
        {
            var kafkaConsumer = base.CreateConsumer();

            Stats.Metric().CountInstances(kafkaConsumer).GetAwaiter().GetResult();

            return(kafkaConsumer);
        }
Esempio n. 3
0
        protected override IKafkaProducer <TKey, TValue> CreateKafkaProducer(IProducer <TKey, TValue> producer, string kafkaTopic)
        {
            var kafkaProducer = new KafkaProducerWithMetrics <TKey, TValue>(Logger, kafkaTopic, producer, Stats);

#pragma warning disable 4014
            Stats.Metric().CountInstances(kafkaProducer);
#pragma warning restore 4014
            return(kafkaProducer);
        }
Esempio n. 4
0
        protected override async Task PushToPipeAsync(CancellationToken cancellationToken, TConsumerValue entity, PipelineMetadata pipelineMetadata, AbstractPipe <TConsumerValue> pipe)
        {
            await pipe.Head.PushAsync(cancellationToken, entity, pipelineMetadata).ConfigureAwait(false);

            await _stats.Metric().PipelineLatency(pipelineMetadata).ConfigureAwait(false);
        }
Esempio n. 5
0
 protected override Task Emit(Message <TKey, TValue> message)
 {
     return(_stats.Metric().ProduceLatency(() => Producer.ProduceAsync(Topic, message))
            .ContinueWith(antecedent => _stats.Metric().ProduceCountIncrement(), TaskContinuationOptions.OnlyOnRanToCompletion));
 }