0.0.9 • Published 10 years ago

simple-influx v0.0.9

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

simple-influx

simple-influx has been renamed to influxdb-nodejs, please install influxdb-nodejs instead of simple-influx

Build Status

An InfluxDB Node.js Client

Installation

$ npm install simple-influx

Examples

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'
});
  • username username

  • password password

  • timePrecision time precision, default: ms

  • host influxdb server host, default: localhost

  • port influxdb server port, default: 8086

  • protocol protocol, default:http

  • database database 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); // 1000

get/set request timeout

write

const Influx = require('simple-influx');
const client = new Influx({
	database: 'mydb'
});
const writer = client.write('http');
  • series write 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'
});
  • key tag name string or {key1: value1, key2: value2}

  • value tag 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);
  • key value name string or {key1: value1, key2: value2}

  • value value

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); // 2

get 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');
  • series get 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);
});
  • key tag name string or {key1: value1, key2: value2}

  • value tag 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);
	});
  • conditions string 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);
	});
  • groupTag group 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);
	});
  • count limit 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);
	});
  • count slimit 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);
	});
  • offset offset 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);
	});
  • field mean 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);
	});
  • count count 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);
	});
  • value fill 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); // 2

get query queue length

License

MIT

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago