internal BufferingWorker(ISignalFxMetricExporter exporter, int maxItems, Func <DataPointUploadMessage> uploadMessageFactory) { _exporter = exporter ?? throw new ArgumentNullException(nameof(exporter)); if (uploadMessageFactory == null) { throw new ArgumentNullException(nameof(uploadMessageFactory)); } // The same _uploadMessage instance is used on all export messages. _uploadMessage = uploadMessageFactory(); if (maxItems < 1) { throw new ArgumentOutOfRangeException(nameof(maxItems), "MaxItems has to be greater or equal to 1"); } _maxBufferSize = maxItems; // idle period similar to trace exporter _idlePeriod = TimeSpan.FromSeconds(1); }
public AsyncSignalFxMetricWriter(ISignalFxMetricExporter exporter, int maxItems) { if (exporter == null) { throw new ArgumentNullException(nameof(exporter)); } if (maxItems < 1) { throw new ArgumentOutOfRangeException(nameof(maxItems), "MaxItems has to be greater or equal to 1"); } _worker = new AsynchronousWorker <DataPoint>( new BufferingWorker(exporter, maxItems), new Waiter(), 1, maxItems, null); }
public BufferingWorker(ISignalFxMetricExporter exporter, int maxItems) : this(exporter, maxItems, InitUploadMessage) { }