public InfluxDBOutput(IInfluxDBHttpClient influxDBHttpClient, string path, ArrayPool <byte> arrayPool) { _influxDBHttpClient = influxDBHttpClient; _path = path; _arrayPool = arrayPool; _task = Read(); }
private InfluxDBClient(IInfluxDBHttpClient httpClient, string database, string?retentionPolicy, Action <Exception>?errorCallback, int initialBufferSize, int maxBufferSize, CancellationTokenSource cancellationTokenSource, TimeSpan?forceFlushInterval, ArrayPool <byte> arrayPool) { _errorCallback = errorCallback; var path = retentionPolicy == null ? $"write?db={Uri.EscapeDataString(database)}&precision=ms" : $"write?db={Uri.EscapeDataString(database)}&precision=ms&rp={Uri.EscapeDataString(retentionPolicy)}"; _bufferSize = initialBufferSize; _maxBufferSize = maxBufferSize; _arrayPool = arrayPool; _cancellationTokenSource = cancellationTokenSource ?? new CancellationTokenSource(); _memory = _arrayPool.Rent(initialBufferSize); if (forceFlushInterval != null) { _forceFlushInterval = forceFlushInterval.Value; _timer = new Timer(ForceFlush, null, _forceFlushInterval, _forceFlushInterval); } _output = new InfluxDBOutput(httpClient, path); _task = Run(_cancellationTokenSource.Token); }
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); } }
private InfluxDBClientBuilder(IInfluxDBHttpClient httpClient, string database, string retentionPolicy, Action <Exception> errorCallback, int initialBufferSize, int maxBufferSize, TimeSpan?forceFlushInterval) { _httpClient = httpClient; _database = database; _retentionPolicy = retentionPolicy; _errorCallback = errorCallback; _initialBufferSize = initialBufferSize; _maxBufferSize = maxBufferSize; _forceFlushInterval = forceFlushInterval; }
internal static InfluxDBClient Create(IInfluxDBHttpClient httpClient, string database, string retentionPolicy, Action <Exception> errorCallback, int initialBufferSize, int maxBufferSize, TimeSpan?forceFlushInterval) { if (httpClient == null) { throw new ArgumentNullException(nameof(httpClient)); } if (string.IsNullOrEmpty(database)) { throw new ArgumentException("Value cannot be null or empty.", nameof(database)); } var cts = new CancellationTokenSource(); var instance = new InfluxDBClient(httpClient, database, retentionPolicy, errorCallback, initialBufferSize, maxBufferSize, cts, forceFlushInterval); return(instance); }
public InfluxDBOutput(IInfluxDBHttpClient influxDBHttpClient, string path) : this(influxDBHttpClient, path, ArrayPool <byte> .Shared) { }
public InfluxDBOutput(IInfluxDBHttpClient influxDBHttpClient, string path) { _influxDBHttpClient = influxDBHttpClient; _path = path; _task = Read(); }
/// <summary> /// Constructs a new instance of <see cref="InfluxDBClientBuilder"/>. For testing purposes only. /// </summary> /// <param name="httpClient">An <see cref="IInfluxDBHttpClient"/></param> /// <param name="database">The InfluxDB database</param> internal InfluxDBClientBuilder(IInfluxDBHttpClient httpClient, string database) : this(httpClient, database, null, null, DefaultInitialBufferSize, DefaultMaxBufferSize, null) { }