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 installbrew 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 |