https://github.com/goliatone/influx-subscriber
Influxdb UDP subscriber
https://github.com/goliatone/influx-subscriber
Last synced: 3 months ago
JSON representation
Influxdb UDP subscriber
- Host: GitHub
- URL: https://github.com/goliatone/influx-subscriber
- Owner: goliatone
- License: mit
- Created: 2016-08-15T15:29:24.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-10T19:22:48.000Z (almost 8 years ago)
- Last Synced: 2025-03-16T18:21:29.467Z (3 months ago)
- Language: JavaScript
- Size: 26.4 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# Influx Subscriber
Influxdb UDP subscriber
## Getting Started
Install the module with: `npm install influx-subscriber`## Example
```js
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][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```js
const server = new Subscriber({
server: {
port: 9090
}
});
```### bind
* port - Integer, Optional
* address , Optional
* callback with no parameters, Optional. Called when binding is complete.```js
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][dgram-createSocket].* type
* reuseAddr```js
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][docs-1] query:
```sql
CREATE SUBSCRIPTION influx_subscriber ON "mydb"."default" DESTINATIONS ALL 'udp://yourapp.com:9090'
```You can then drop and show subscriptions.
```sql
SHOW SUBSCRIPTIONS
``````sql
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](http://gruntjs.com/).## Release History
* 2016-08-15 v.0.1.0: Initial release## License
Copyright (c) 2016 goliatone
Licensed under the MIT license.[docs-1]:https://docs.influxdata.com/influxdb/v0.13/query_language/spec/#create-subscription
[dgram]:https://nodejs.org/api/dgram.html
[dgram-createSocket]:https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_options_callback