Example #1
0
        private InfluxDBChannel(IInfluxDBHttpClient httpClient, string database, string retentionPolicy, Action <Exception> errorCallback,
                                TimeSpan?forceFlushInterval, int channelCapacity)
        {
            _httpClient    = httpClient;
            _errorCallback = errorCallback;

            _path = retentionPolicy == null
                ? $"write?db={Uri.EscapeDataString(database)}&precision=ms"
                : $"write?db={Uri.EscapeDataString(database)}&precision=ms&rp={Uri.EscapeDataString(retentionPolicy)}";

            _channel = Channel.CreateBounded <LineCollection>(new BoundedChannelOptions(channelCapacity)
            {
                FullMode     = BoundedChannelFullMode.Wait,
                SingleReader = true
            });

            _lines = LineCollectionPool.Shared.Rent();

            _completion = Run();

            if (forceFlushInterval != null)
            {
                _forceFlushInterval = forceFlushInterval.Value;
                _timer = new Timer(ForceFlush, null, _forceFlushInterval, _forceFlushInterval);
            }
        }
Example #2
0
 public InfluxHttpContent(LineCollection lines)
 {
     _lines = lines ?? throw new ArgumentNullException(nameof(lines));
 }
Example #3
0
 public LineCollectionEnumerator(LineCollection lines)
 {
     _lines   = lines;
     _current = -1;
 }
Example #4
0
 public void Return(LineCollection collection)
 {
     _pool.Add(collection);
 }