Skip to content

naymore/influxdb-lineprotocolwriter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##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);

About

InfluxDB C# Line Protocol writer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published