public HerculesStreamClient([NotNull] HerculesStreamClientSettings <T> settings, [CanBeNull] ILog log) { this.settings = settings; this.log = log = (log ?? LogProvider.Get()).ForContext <HerculesStreamClient>(); bufferPool = new BufferPool(settings.MaxPooledBufferSize, settings.MaxPooledBuffersPerBucket); client = new StreamApiRequestSender(settings.Cluster, log, bufferPool, settings.AdditionalSetup); }
public BatchesStreamConsumer([NotNull] BatchesStreamConsumerSettings <T> settings, [CanBeNull] ILog log) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.log = log = (log ?? LogProvider.Get()).ForContext <BatchesStreamConsumer <T> >(); tracer = settings.Tracer ?? TracerProvider.Get(); var bufferPool = new BufferPool(settings.MaxPooledBufferSize, settings.MaxPooledBuffersPerBucket); client = new StreamApiRequestSender(settings.StreamApiCluster, log /*.WithErrorsTransformedToWarns()*/, bufferPool, settings.StreamApiClientAdditionalSetup); var instanceMetricContext = settings.InstanceMetricContext ?? new DevNullMetricContext(); eventsMetric = instanceMetricContext.CreateIntegerGauge("events", "type", new IntegerGaugeConfig { ResetOnScrape = true }); iterationMetric = instanceMetricContext.CreateSummary("iteration", "type", new SummaryConfig { Quantiles = new[] { 0.5, 0.75, 1 } }); instanceMetricContext.CreateFuncGauge("events", "type").For("remaining").SetValueProvider(CountStreamRemainingEvents); instanceMetricContext.CreateFuncGauge("buffer", "type").For("rented_reader").SetValueProvider(() => BufferPool.Rented); }