Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

node-influx

An InfluxDB Node.js Client

npmbuildcoveragecode climateDependency Status

Bountysource - Reward the contributors for their efforts on upcoming tasks.

Installation

npm install influx

Usage

Create a client instance (database not required for all methods):

varinflux=require('influx')varclient=influx({//cluster configurationhosts : [{host : 'localhost',port : 8060,//optional. default 8086protocol : 'http'//optional. default 'http'}],// or single-host configurationhost : 'localhost',port : 8086,// optional, default 8086protocol : 'http',// optional, default 'http'username : 'dbuser',password : 'f4ncyp4ass',database : 'my_database'})

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

OptionDescription
usernameusername
passwordpassword
databasedatabase name
hosthostname, e.g. 'localhost'
port [optional]influxdb port, default: 8086
protocol [optional]protocol, default: http
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
timePrecision [optional]Time precision, default : ms

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.

setRequestTimeout(value){}

###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.

setFailoverTimeout(value){}

###getHostsAvailable Returns an array of available hosts.

getHostsAvailable(){}

###getHostsDisabled Returns an array of disabled hosts. This can be useful to check whether a host is unresponsive or not.

getHostsDisabled(){}

###createDatabase Creates a new database - requires cluster admin privileges

createDatabase(databaseName,[options,]callback){}

Options can be an array of shard spaces and/or continuous queries.

###deleteDatabase Deletes a database - requires cluster admin privileges

deleteDatabase(databaseName,callback){}

###getDatabaseNames Returns array of database names - requires cluster admin privileges

getDatabaseNames(function(err,arrayDatabaseNames){}){}

###getSeriesNames Returns array of series names from given database - requires database admin privileges

getSeriesNames(databaseName,function(err,arraySeriesNames){}){}

###getUsers Returns an array of database users - requires cluster admin privileges

getUsers(databaseName,callback){}

###getUser Returns a database user - requires cluster admin privileges

getUser(databaseName,username,callback){}

###createUser Creates a new database user - requires cluster admin privileges

createUser(databaseName,username,password,callback){}

###updateUser Updates database user - requires cluster admin privileges

updateUser(databaseName,username,options,callback){}e.g.:
// adds database admin privilegeinfluxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

###writePoint Writes a point to a series - requires database user privileges

varpoint={attr : value,time : newDate()};writePoint(seriesName,point,options,callback){}

###writePoints Writes multiple points to a series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];writePoints(seriesName,points,options,callback){}

###writeSeries Writes multiple point to multiple series - requires database user privileges

varpoints=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varpoints2=[{attr : value,time : newDate()},{attr : value2,time : newDate()}];varseries={series_name_one : points,series_name_two : points2};writeSeries(series,options,callback){}

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

varquery='SELECT MEDIAN(column) FROM myseries WHERE time > now() - 24h';query(query,callback){}query(query,callback){}

###getContinuousQueries Fetches all continuous queries from a database - requires database admin privileges

getContinuousQueries([databaseName,]callback){}

###dropContinuousQuery Drops a continuous query from a database - requires database admin privileges

dropContinuousQuery([databaseName,]queryID,callback){}

###getShardSpaces Returns array of all shard spaces for a database - requires cluster admin privileges

getShardSpaces([databaseName,]function(err,arrayShardSpaces){}){}

###createShardSpace Creates a new shard space for a database - requires cluster admin privileges

varshardSpace={name: '30d_shard',retentionPolicy: '30d',shardDuration: '7d',regex: '/.*/',replicationFactor: 1,split: 1};createShardSpace([databaseName,]shardSpace,callback){}

###updateShardSpace Updates a shard space - requires cluster admin privileges

varupdatedShardSpace={retentionPolicy: '60d',shardDuration: '14d',regex: '/.*/',replicationFactory: 1,split: 1};updateShardSpace([databaseName,]shardSpaceName,updatedShardSpace,callback){}

###deleteShardSpace Deletes a shard space - requires cluster admin privileges

deleteShardSpace([databaseName,]shardSpaceName,callback){}

###dropSeries Drops a series from a database - requires database admin privileges

dropSeries([databaseName,]seriesName,callback){}

As Jeff Atwood puts it... Read the source, Luke. If you're still stuck, read the ./examples/* files and the ./test.js file.

Testing

Either install InfluxDB or use a docker container to run the service:

docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb

Then to run the test harness use npm test.

Licence

MIT

About

InfluxDB Node.js Client

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages