/influxdb-lineprotocolwriter

InfluxDB C# Line Protocol writer

Primary LanguageC#Apache License 2.0Apache-2.0

##C# InfluxDB line protocol writer.##

Official InfluxDB Line Protocol documentation
This code is based on influxdb-csharp

FEATURES

  • GZIP compression which significantly reduces the amout of data sent over the wire
  • Aggregation/Batching of write requests
    The batching/aggregating is triggered by whatever event occurs first.
    In the example below either after 15.000 LineProtocolPoints -or- after 3 seconds.

Usage example:

// First of all create a parameters object for the low level InfluxDbLineProtocolClient.
var options = new LineProtocolClientOptions {
    ServerBaseAddress = "http://localhost:8086";
    DatabaseName = "testdb";
    UserName = "root";
    Password = "root";
    UseGzipCompression = true;
};

// Create a new LineProtocolClient
var lineProtocolClient = new LineProtocolClient(options);

// You can now use the lineProtocolClient to write data to InfluxDb.
lineProtocolClient.WriteAsync(...);

// If you want to write to InfluxDb in batches you can wrap the LineProtocolClient in a BufferedLineProtocolClient. 
// In this example the buffer will grow to a maximum of 15.000 items -OR- gather items for a maximum time of 3 seconds - whichever threshold is reached first.
BufferedLineProtocolClient bufferedLineProtocolClient = new BufferedLineProtocolClient(lineProtocolClient, maximumMeasurementPoints: 15000, maximumElapsedTime: TimeSpan.FromSeconds(2);

// You can the enqueue new data
bufferedLineProtocolClient.Enqueue(point1);
bufferedLineProtocolClient.Enqueue(point2);
bufferedLineProtocolClient.Enqueue(point3);