simple-influx v0.0.9
simple-influx
simple-influx has been renamed to influxdb-nodejs, please install influxdb-nodejs instead of simple-influx
An InfluxDB Node.js Client
Installation
$ npm install simple-influxExamples
View the ./examples directory for working examples.
API
Constructor
const Influx = require('simple-influx');
const client = new Influx({
username: 'root',
password: 'root',
timePrecision: 'ms',
host: 'localhost',
port: 8086,
protocol: 'http',
database: 'mydb'
});usernameusernamepasswordpasswordtimePrecisiontime precision, default:mshostinfluxdb server host, default:localhostportinfluxdb server port, default:8086protocolprotocol, default:httpdatabasedatabase name
const Influx = require('simple-influx');
const client = new Influx('http://user:pass@localhost:port,anotherhost:port,yetanother:port/mydatabase');createDatabase
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.createDatabase().then(() => {
console.info('create database:mydb success');
}).catch(err => {
console.error(err);
});create database
createDatabaseNotExists
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.createDatabaseNotExists().then(() => {
console.info('create database:mydb success');
}).catch(err => {
console.error(err);
});dropDatabase
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.dropDatabase().then(() => {
console.info('drop database:mydb success');
}).catch(err => {
console.error(err);
});drop data when is exists
getMeasurements
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.getMeasurements().then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});dropMeasurement
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.dropMeasurement('http').then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});availableServers
const Influx = require('simple-influx');
const client = new Influx('http://user:pass@192.168.1.1:8086,192.168.1.2:8086,192.168.1.3:9086/mydatabase');
console.dir(client.availableServers); //[{"host": "192.168.1.1", "port": 8086}, ...]unavailableServers
const Influx = require('simple-influx');
const client = new Influx('http://user:pass@192.168.1.1:8086,192.168.1.2:8086,192.168.1.3:9086/mydatabase');
console.dir(client.unavailableServers); //[{"host": "192.168.1.1", "port": 8086}, ...]timeout (get/set)
const Influx = require('simple-influx');
const client = new Influx({
username: 'root',
password: 'root',
timePrecision: 'ms',
host: 'localhost',
port: 8086,
protocol: 'http',
database: 'mydb'
});
client.timeout = 1000;
console.info(client.timeout); // 1000get/set request timeout
write
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');serieswrite point to the series
write point to the series, return Writer instance
Writer.tag
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});keytag name string or {key1: value1, key2: value2}valuetag value string
set point tags, return Writer instance
Writer.value
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});
writer.value({
code: 400,
value: 1
});
writer.value('bytes', 1010);keyvalue name string or {key1: value1, key2: value2}valuevalue
Writer.end
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});
writer.value({
code: 400,
value: 1
});
writer.value('bytes', 1010);
writer.end().then(() => {
console.info('write point success');
}).catch(err => {
console.error(err);
});write point to server, return promise
Writer.queue
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});
writer.value({
code: 400,
value: 1
});
writer.value('bytes', 1010);
writer.queue();add writer instance to write queue, it will sync when call syncWrite or the queue length reach max.
writeQueueLength
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});
writer.value({
code: 400,
value: 1
});
writer.value('bytes', 1010);
writer.queue();
console.info(client.writeQueueLength); // 2get write queue length
syncWrite
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const writer = client.write('http');
writer.tag('uuid', '1234');
writer.tag({
status: '40x',
size: '1K'
});
writer.value({
code: 400,
value: 1
});
writer.value('bytes', 1010);
writer.queue();
client.syncWrite().then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});query
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const reader = client.query('http');seriesget point from the series
get point from the series, return Reader instance
Reader.tag
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const reader = client.query('http');
reader.tag('status', '40x');
reader.tag({
uuid: '1234'
});
reader.end().then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});keytag name string or {key1: value1, key2: value2}valuetag value string
set query tag conditions, return Reader instance
Reader.where
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
const reader = client.query('http');
reader.where("status='40x'").end().then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});
client.query('http')
.where('status =~ /50./')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});conditionsstring or regexp
get points by where conditions
Reader.group
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.group('status')
.group('size')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});groupTaggroup tag name
get points group by tag
Reader.limit
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.group('*')
.limit(1)
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});countlimit value
get points by limit value
Reader.slimit
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.group('*')
.slimit(1)
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});countslimit value
get points by slimit value
Reader.desc, Reader.asc
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.desc()
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});
client.query('http')
.asc()
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});get points sort by time(asc, desc)
Reader.offset
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.offset(1)
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});offsetoffset value
get points by offset
Reader.mean
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.mean('use')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});fieldmean field
mean points
Reader.sum
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.sum('use')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});Reader.count
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.count('use')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});countcount field
count points
Reader.fill
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query('http')
.group('status')
.fill(1)
.tag('uuid', uuid)
.mean('value')
.end()
.then(data => {
console.info(data);
}).catch(err => {
console.error(err);
});valuefill value
fill null value with fill value
Reader.queue
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query(series)
.tag('status', '40x')
.queue();
client.query(series)
.tag('status', '50x')
.queue();
client.syncQuery().then(data => {
console.info(data);
}).catch(error);add reader instance to reader queue
syncQuery
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query(series)
.tag('status', '40x')
.queue();
client.query(series)
.tag('status', '50x')
.queue();
client.syncQuery().then(data => {
console.info(data);
}).catch(error);get all query queue points result
queryQueueLength
const Influx = require('simple-influx');
const client = new Influx({
database: 'mydb'
});
client.query(series)
.tag('status', '40x')
.queue();
client.query(series)
.tag('status', '50x')
.queue();
console.info(client.queryQueueLength); // 2get query queue length
License
MIT