npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

old_influx

v1.0.3

Published

InfluxDB Client

Downloads

21

Readme

node-influx

An InfluxDB Node.js Client

npm build coverage code climate Dependency Status gittip

Bountysource - 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 = influx({

  //cluster configuration
  hosts : [
    {
      host : 'localhost',
      port : 8060 //optional. default 8086
    }
  ],
  // or single-host configuration
  host : 'localhost',
  port : 8086, // optional, default 8086
  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

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

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, callback) { }

###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){} ) { }

###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 privilege
influxDB.updateUser('myDatabase','johndoe',{admin:true},callback);

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

var point = { attr : value, time : new Date()};
writePoint(seriesName, point, options, callback) { }

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

var points = [ {attr : value, time : new Date()}, {attr : value2, time : new Date()}];
writePoints(seriesName, points, options, callback) { }

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

var points = [ {attr : value, time : new Date()}, {attr : value2, time : new Date()}];
var points2 = [ {attr : value, time : new Date()}, {attr : value2, time : new Date()}];

var series = {
    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

var query = '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) { }

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

query ( [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.

Licence

MIT