private ConsumerGroupHostSettings GetConsumerGroupHostSettings(ILog log, AirlockEnvironmentVariables environmentVariables) { var consumerGroupPrefix = environmentVariables.GetValue("CONSUMER_GROUP_PREFIX", $"{GetType().Name}@{Dns.GetHostName()}"); var consumerGroupId = $"{consumerGroupPrefix}_{ServiceName}"; var kafkaBootstrapEndpoints = environmentVariables.GetValue("KAFKA_BOOTSTRAP_ENDPOINTS", defaultKafkaBootstrapEndpoints); var autoResetOffsetPolicy = environmentVariables.GetEnumValue("KAFKA_AUTO_OFFSET_RESET", AutoResetOffsetPolicy.Latest); var consumerGroupHostSettings = new ConsumerGroupHostSettings(kafkaBootstrapEndpoints, consumerGroupId, ProcessorHostSettings, autoResetOffsetPolicy); log.Info($"ConsumerGroupHostSettings: {consumerGroupHostSettings.ToPrettyJson()}"); return(consumerGroupHostSettings); }
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)); }
protected static Uri GetGraphiteUri(ILog log, AirlockEnvironmentVariables environmentVariables) { var graphiteEndpoint = environmentVariables.GetValue("GRAPHITE_ENDPOINT", defaultGraphiteEndpoint); var graphiteUri = new Uri($"tcp://{graphiteEndpoint}"); log.Info($"GraphiteUri: {graphiteUri}"); return(graphiteUri); }