public KafkaScalerProvider()

in src/Microsoft.Azure.WebJobs.Extensions.Kafka/Listeners/Scaler/KafkaScalerProvider.cs [28:47]


        public KafkaScalerProvider(IServiceProvider serviceProvider, TriggerMetadata triggerMetadata)
        {
            var config = serviceProvider.GetService<IConfiguration>();
            var nameResolver = serviceProvider.GetService<INameResolver>();
            KafkaMetaData kafkaMetadata = JsonConvert.DeserializeObject<KafkaMetaData>(triggerMetadata.Metadata.ToString());
            kafkaMetadata.ResolveProperties(config, nameResolver);
            IOptions<KafkaOptions> options = serviceProvider.GetService<IOptions<KafkaOptions>>();
            string topicName = kafkaMetadata.Topic;
            string consumerGroup = kafkaMetadata.ConsumerGroup;
            long lagThreshold = kafkaMetadata.LagThreshold;
            ILoggerFactory loggerFactory = serviceProvider.GetService<ILoggerFactory>();
            ILogger logger = loggerFactory.CreateLogger(LogCategories.CreateTriggerCategory("Kafka"));

            var consumerConfig = GetConsumerConfiguration(kafkaMetadata, config, nameResolver);
            var consumer = new ConsumerBuilder<string, string>(consumerConfig).Build();
            var metricsProvider = new KafkaMetricsProvider<string, string>(topicName, new AdminClientConfig(consumerConfig), consumer, logger);

            _scaleMonitor = new KafkaObjectTopicScaler(topicName, consumerGroup, metricsProvider, triggerMetadata.FunctionName, lagThreshold, logger);
            _targetScaler = new KafkaObjectTargetScaler(topicName, consumerGroup, metricsProvider, triggerMetadata.FunctionName, lagThreshold, logger);
        }