node-influx
An InfluxDB Node.js Client
- Reward the contributors for there efforts on upcoming tasks.
Installation
npm install influx
Usage
Create a client instance (database
not required for all methods):
var client = ;
A list of all configuration values can be found below.
You can either pass a single hostname or an array of hostnames. Node-influx uses round-robin balancing to distribute the requests across all configured hosts. When a host is unreachable, node-influx tries to resubmit the request to another host and disables the failed host for 60 seconds (timeout value is configurable). If all servers fail to respond, node-influx raises an error.
Configuration options
Option | Description |
---|---|
username | username |
password | password |
database | database name |
host | hostname, e.g. 'localhost' |
port [optional] | influxdb port, default: 8086 |
hosts [optional] | Array of hosts for cluster configuration, e.g. [ {host: 'localhost', port : 8086},...] Port is optional |
depreciatedLogging [optional] | logging function for depreciated warnings, defaults to console.log |
failoverTimeout [optional] | number of ms node-influx will take a host out of the balancing after a request failed, default: 60000 |
requestTimeout [optional] | number of ms to wait before a request times out. defaults to 'null' (waits until connection is closed). Use with caution! |
maxRetries [options] | max number of retries until a request raises an error (e.g. 'no hosts available'), default : 2 |
Functions
setRequestTimeout
Sets the default timeout for a request. When a request times out the host is removed from the list of available hosts
and the request is resubmitted to the next configured host. The default value is null
(will wait forever for a respose).
Be careful with this setting. If the value is too low, slow queries might disable all configured hosts.
{ }
setFailoverTimeout
Sets the failover timeout for a host. After a host has been removed from balancing, it will be re-enabled after 60 seconds (default). You can configure the timeout value using this function.
{ }
getHostsAvailable
Returns an array of available hosts.
{ }
getHostsDisabled
Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.
{ }
createDatabase
Creates a new database - requires cluster admin privileges
{ }
deleteDatabase
Deletes a database - requires cluster admin privileges
{ }
getDatabaseNames
Returns array of database names - requires cluster admin privileges
getSeriesNames
Returns array of series names from given database - requires database admin privileges
createUser
Creates a new database user - requires cluster admin privileges
{ }
updateUser
Updates database user - requires cluster admin privileges
{ } eg:// adds database admin privilegeinfluxDB;
writePoint
Writes a point to a series - requires database user privileges
var point = attr : value time : ; { }
writePoints
Writes multiple point to a series - requires database user privileges
var points = attr : value time : attr : value2 time : ; { }
writeSeries
Writes multiple point to multiple series - requires database user privileges
var points = attr : value time : attr : value2 time : ;var points2 = attr : value time : attr : value2 time : ; var series = series_name_one : points series_name_two : points2; { }
Please note that there's a POST limit at about 2MB per request. Do not submit too many points at once.
query
Queries the database - requires database user privileges
var query = 'SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h'; { } { }
getContinuousQueries
Fetches all continuous queries from a database - requires database admin privileges
{ }
dropContinuousQuery
Drops a continuous query from a database - requires database admin privileges
{ }
dropSeries
Drops a series from a database - requires database admin privileges
{ }
As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/*
files and the ./test.js
file.
Licence
MIT