public StreamConsumer([NotNull] StreamConsumerSettings <T> settings, [CanBeNull] ILog log)
        {
            this.settings = settings ?? throw new ArgumentNullException(nameof(settings));
            this.log      = (log ?? LogProvider.Get()).ForContext <StreamConsumer <T> >();

            streamReader = new StreamReader <T>(
                new StreamReaderSettings <T>(
                    settings.StreamName,
                    settings.StreamClient)
            {
                EventsReadTimeout   = settings.EventsReadTimeout,
                EventsReadBatchSize = settings.EventsReadBatchSize,
                EventsReadAttempts  = settings.EventsReadAttempts,
                DelayOnError        = settings.DelayOnError
            },
                log);

            eventsMetric = settings.MetricContext?.CreateIntegerGauge("events", "type", new IntegerGaugeConfig {
                ResetOnScrape = true
            });
            iterationMetric = settings.MetricContext?.CreateSummary("iteration", "type", new SummaryConfig {
                Quantiles = new[] { 0.5, 0.75, 1 }
            });
            settings.MetricContext?.CreateFuncGauge("events", "type").For("remaining").SetValueProvider(() => CountStreamRemainingEvents());
        }
Exemple #2
0
        public Task RunAsync(CancellationToken cancellationToken)
        {
            var consumerSettings = new StreamConsumerSettings(
                settings.SourceStreamName,
                settings.StreamClient,
                new TransformingEventHandler(settings, log),
                settings.CoordinatesStorage,
                settings.ShardingSettingsProvider)
            {
                MetricContext       = settings.MetricContext,
                EventsReadBatchSize = settings.EventsReadBatchSize,
                EventsReadTimeout   = settings.EventsReadTimeout,
                EventsReadAttempts  = settings.EventsReadAttempts,
                DelayOnError        = settings.DelayOnError,
                DelayOnNoEvents     = settings.DelayOnNoEvents
            };

            return(new StreamConsumer(consumerSettings, log).RunAsync(cancellationToken));
        }
 public StreamConsumer([NotNull] StreamConsumerSettings settings, [CanBeNull] ILog log) =>