Description

InfluxDB wrapper

Package Information

Version0.0.2 (2017-Mar-24)
Repositoryhttps://github.com/kaleidicassociates/influxdb-dlang-wrapper
LicenseBSD 3-clause
CopyrightCopyright © 2017, Kaleidic Associates Ltd
AuthorsAtila Neves
Registered byAtila Neves
Dependencies

asdf

vibe-d

Installation

To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Readme

influxdb-dlang-wrapper

D programming language wrapper for InfluxDB.

Getting started tutorial (hopefully self-explanatory):


import influxdb;

// this will connect and create the `mydb` database if not already in InfluxDB
const database = Database("http://localhost:8086" /*URL*/, "mydb" /*DB name*/);

// no explicit timestamp
database.insert(Measurement("cpu" /*name*/, ["tag1": "foo"] /*tags*/, ["temperature": 42] /*values*/));
// `insert` can also take `Measurement[]` or a variadic number of `Measurement`s
// Measurement also has a contructor that does't take tags:
// auto m = Measurement("cpu", ["temperature": 42]);

// explicit timestamp
import std.datetime: Clock;
database.insert(Measurement("cpu", ["tag1": "foo"], ["temperature": 68], Clock.currTime));

// this will have the two measurements given the code above
const response = database.query("SELECT * FROM cpu");

// Accessing the response.
// The code below assumes a response with one result and that result has only
// one series.

assert(response.results.length == 1);
const result = response.results[0];
assert(result.statement_id == 0);
assert(result.series.length == 1);
const series = result.series[0];
assert(series.rows.length == 1);
const row = series.rows[0];

assert(row.time == SysTime(DateTime(2015, 06, 11, 20, 46, 2), UTC()));
assert(row["foo"] == "bar");

assert(series ==
        MeasurementSeries(
            "lename", //name
            ["time", "othervalue", "tag1", "tag2", "value"], //column names
            //values
            [
                ["2015-06-11T20:46:02Z", "4", "toto", "titi", "2"],
                ["2017-03-14T23:15:01.06282785Z", "3", "letag", "othertag", "1"],
            ]
        ));

Available versions

0.0.2 0.0.1 ~master