예제 #1
0
        protected sealed override void DoInitialize(ILog log, IMetricScope rootMetricScope, AirlockEnvironmentVariables environmentVariables, out IRoutingKeyFilter routingKeyFilter, out IAirlockEventProcessorProvider processorProvider)
        {
            routingKeyFilter = new DefaultRoutingKeyFilter(RoutingKey.MetricsSuffix);
            var graphiteUri = GetGraphiteUri(log, environmentVariables);

            processorProvider = new DefaultAirlockEventProcessorProvider <MetricEvent, MetricEventSerializer>(project => new MetricsAirlockEventProcessor(graphiteUri, log));
        }
        protected sealed override void DoInitialize(ILog log, IMetricScope rootMetricScope, AirlockEnvironmentVariables environmentVariables, out IRoutingKeyFilter routingKeyFilter, out IAirlockEventProcessorProvider processorProvider)
        {
            routingKeyFilter = new DefaultRoutingKeyFilter(RoutingKey.LogsSuffix);
            var elasticUris = GetElasticUris(log, environmentVariables);

            processorProvider = new DefaultAirlockEventProcessorProvider <LogEventData, LogEventDataSerializer>(project => new LogAirlockEventProcessor(elasticUris, log));
        }
        private static void RunConsumer(ILog log, string[] args)
        {
            log.Info("Consumer started");
            var consumerGroupId = $"group@{Dns.GetHostName()}";
            var recedeGap       = TryParseRecedeGap(args.FirstOrDefault());
            var routingKeys     = (recedeGap.HasValue ? args.Skip(1) : args).ToArray();

            if (!routingKeys.Any())
            {
                routingKeys = new[] { defaultRoutingKey }
            }
            ;
            var routingKeyFilter  = new SampleRoutingKeyFilter(routingKeys);
            var processorProvider = new DefaultAirlockEventProcessorProvider <SampleEvent, SampleEventSerializer>(project => new SampleDataAirlockEventProcessor(log, recedeGap));
            var settings          = new ConsumerGroupHostSettings(kafkaBootstrapEndpoints, consumerGroupId, new ProcessorHostSettings(), AutoResetOffsetPolicy.Earliest);

            IMetricScope rootMetricScope = new RootMetricScope(
                new MetricConfiguration
            {
                Reporter = new FakeMetricReporter()
            });
            var consumerMetrics = new ConsumerMetrics(settings.FlushMetricsInterval, rootMetricScope);

            using (new ConsumerGroupHost(settings, log, consumerMetrics, routingKeyFilter, processorProvider))
            {
                stopSignal.Wait(Timeout.Infinite);
            }

            log.Info("Consumer finished");
        }
예제 #4
0
        protected sealed override void DoInitialize(ILog log, IMetricScope rootMetricScope, AirlockEnvironmentVariables environmentVariables, out IRoutingKeyFilter routingKeyFilter, out IAirlockEventProcessorProvider processorProvider)
        {
            routingKeyFilter = new DefaultRoutingKeyFilter(RoutingKey.TracesSuffix);
            var contrailsClientSettings = GetContrailsClientSettings(log, environmentVariables);
            var contrailsClient         = new ContrailsClient(contrailsClientSettings, log);

            processorProvider = new DefaultAirlockEventProcessorProvider <Span, SpanAirlockSerializer>(project => new TracingAirlockEventProcessor(contrailsClient, log, maxCassandraTasks: 1000));
        }