InfluxDB C++ client library
- Batch write
- Data exploration
- Supported transports
- HTTP/HTTPS with Basic Auth
- UDP
- Unix datagram socket
Build requirements
- CMake 3.12+
- C++17 compliler
Dependencies
- CURL (required)
- boost 1.57+ (optional - see Transports)
git clone https://github.com/awegrzyn/influxdb-cxx.git
cd influxdb-cxx; mkdir build
cd build
cmake ..
sudo make install
brew install awegrzyn/influxdata/influxdb-cxx
// Provide complete URI
auto influxdb = influxdb::InfluxDBFactory::Get("http://localhost:8086/?db=test");
influxdb->write(Point{"test"}
.addField("value", 10)
.addTag("host", "localhost")
);
// Provide complete URI
auto influxdb = influxdb::InfluxDBFactory::Get("http://localhost:8086/?db=test");
// Write batches of 100 points
influxdb->batchOf(100);
for (;;) {
influxdb->write(Point{"test"}.addField("value", 10));
}
// Available over HTTP only
auto influxdb = influxdb::InfluxDBFactory::Get("http://localhost:8086/?db=test");
/// Pass an IFQL to get list of points
std::vector<Point> points = idb->query("SELECT * FROM test");
An underlying transport is fully configurable by passing an URI:
[protocol]://[username:password@]host:port[/?db=database]
List of supported transport is following:
Name | Dependency | URI protocol | Sample URI |
---|---|---|---|
HTTP | cURL | http /https |
http://localhost:8086/?db=<db> |
UDP | boost | udp |
udp://localhost:8094 |
Unix socket | boost | unix |
unix:///tmp/telegraf.sock |