예제 #1
0
        public ConsumerGroupHost Initialize(ILog log, AirlockEnvironmentVariables environmentVariables)
        {
            var environment            = environmentVariables.GetValue("VOSTOK_ENV", "dev");
            var metricRoutingKeyPrefix = RoutingKey.CreatePrefix("vostok", environment, ServiceName);
            var graphiteUri            = GetGraphiteUri(log, environmentVariables);
            var graphiteSinkConfig     = new GraphiteSinkConfig
            {
                GraphiteHost = graphiteUri.Host,
                GraphitePort = graphiteUri.Port
            };

            log.Info($"GraphiteSinkConfig: {graphiteSinkConfig.ToPrettyJson()}");
            graphiteSink = new GraphiteSink(graphiteSinkConfig, log);
            var rootMetricScope = new RootMetricScope(new MetricConfiguration
            {
                Reporter = new GraphiteMetricReporter(graphiteSink, metricRoutingKeyPrefix, log)
            });
            var consumerGroupHostSettings = GetConsumerGroupHostSettings(log, environmentVariables);

            consumerMetrics = new ConsumerMetrics(consumerGroupHostSettings.FlushMetricsInterval, rootMetricScope);

            DoInitialize(log, rootMetricScope, environmentVariables, out var routingKeyFilter, out var processorProvider);

            return(new ConsumerGroupHost(consumerGroupHostSettings, log, consumerMetrics, routingKeyFilter, processorProvider));
        }
 public void CreatePrefix_fails_if_empty_item(string project, string environment, string service)
 {
     Assert.Throws <ArgumentException>(() => RoutingKey.CreatePrefix(project, environment, service));
 }
 public void CreatePrefix_returns_prefix(string project, string environment, string service, string prefix)
 {
     Assert.AreEqual(prefix, RoutingKey.CreatePrefix(project, environment, service));
     Assert.AreEqual(prefix, RoutingKey.Create(project, environment, service));
 }