Ejemplo n.º 1
0
        public int Start(HighLevelConsumerOptions opts)
        {
            var timer = Metric.Timer("Received", Unit.Events);

            Metric.Config.WithReporting(r => r.WithConsoleReport(TimeSpan.FromSeconds(5)));

            using (var client = new KafkaClient(opts.ZkConnect))
                using (var consumer = new BalancedConsumer(client, opts.Group, opts.Topic, opts.Threads))
                {
                    ListenToConsole(consumer);
                    consumer.Start(message =>
                    {
                        var time  = DateTime.UtcNow.Ticks;
                        var value = long.Parse(message.Value);
                        var diff  = (time - value) / 10000;
                        timer.Record(diff, TimeUnit.Milliseconds);
                    });
                }

            return(0);
        }