influx-subscriber

0.4.0 • Public • Published

Influx Subscriber

Influxdb UDP subscriber

Getting Started

Install the module with: npm install influx-subscriber

Example

const Subscriber = require('influx-subscriber');
const server = new Subscriber({
    server:{
        port: 9090,
        options: {
            reuseAddr: true
        }
    }
});
 
server.on('point', (point) => {
    var measurement = point.measurement;
    if(measurement.match(/^access_granted\.global_unique\.1d$/)){
        persist(point);
    }
});
 
function persist(point){
    // { timestamp: 1470934800000000000,
    //   measurement: 'access_granted.global_unique.1h',
    //   fields: [ { members: 290 } ],
    //   tags: [] }
}

Documentation

Configuration

Under the hood, a Subscriber will use a dgram instance to create the UDP connection. In the configuration object, under the server key, you can pass the following values:

  • port
  • bind

To get more details on what those do, read the documentation.

There is a default port 9090 that will be used if not overriden with a configuration object. If a bind object is found then it will be used instead of the port.

port

The default UDP port the server will be listening to is 9090.

To set a custom UDP port you have two options:

  • Set the NODE_UDP_PORT environmental variable
  • Pass in a config object with server.port set to the port number
const server = new Subscriber({
    server: {
        port: 9090
    }
});

bind

  • port - Integer, Optional
  • address , Optional
  • callback with no parameters, Optional. Called when binding is complete.
const server = new Subscriber({
    server: {
        bind: {
            address: 'localhost',
            port: 8000,
            exclusive: true
        }
    }
});

options

As the options field goes straight to dgram.createSocket you can pass either a String with a type, or an object. Read more here.

  • type
  • reuseAddr
const server = new Subscriber({
    server: {
        options: {
            type: 'udp4',
            reuseAddr: true
        }
    }
});

InfluxDB setup

You need to register a new subscriber in your InfluxDB instance, you do so by running a create subscription query:

CREATE SUBSCRIPTION influx_subscriber ON "mydb"."default" DESTINATIONS ALL 'udp://yourapp.com:9090'

You can then drop and show subscriptions.

SHOW SUBSCRIPTIONS
DROP SUBSCRIPTION sub0 ON "mydb"."default"

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 2016-08-15 v.0.1.0: Initial release

License

Copyright (c) 2016 goliatone
Licensed under the MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i influx-subscriber

Weekly Downloads

0

Version

0.4.0

License

none

Last publish

Collaborators

  • goliatone