1.0.1 • Published 9 years ago

influxdb-line-protocol v1.0.1

Weekly downloads
6
License
MIT
Repository
github
Last release
9 years ago

#InfluxDB-Line-Protocol

implementation of line protocol for influxdb. Specifications of protocol are here.

js-standard-style

Currently only UDP protocol is supported

##Why UDP ?

because in metric collection application you mostly do not want to get reply from influxdb on write.

##prerequisites

To use UDP protocol for writing data in influxdb using line protocol, we have to enable UDP support in influxdb configuration file.

[udp]
  enabled = true
  bind-address = ":9999"
  database = "visitors"

after changing UDP configuration to above configuration, influxdb will start listening on port 9999. Important point here is we have to specified database to which all write will go and we can not change it in run time. :(

##Installation

npm i influxdb-line-protocol --save

##Test

just run following command

npm test

we do not require influxdb running for testing as nature of UDP protocol we can not identify whether data is written or not.

##API

constructor

var InfluxDbLine = require('influxdb-line-protocol'
var influxDbLine = new InfluxDbLine(host, port)
influxDbLine.on('error', console.log)
  • host: host of influxdb server
  • port: port on which influxdb listening on UDP protocol
  • returns event listener which Currently emits 'error' event.

    Philosophy behind return event emitter is will gives you error which may occurs due to invalid data (explained below) so no callbacks.

#####send

It is use for sending metrics to influxdb

influxDbLine.send('CPU', {
  value : 50
}, {
  instanceId : 'i-4159e7sdd'
}, new Date().getTime())
  • measurement: metric you want to send value for
  • fields: fields to store with entry
  • tags: optional fields for tags to add in entry
  • timestamps: optional if you want to specified timestamps for entry

This method will throw exception when module unable to make UPD connection with influxdb.

##Example

var InfluxDbLine = require('influxdb-line-protocol')

var influxDbLine = new InfluxDbLine('localhost', 9999)
influxDbLine.on('error', console.error)

influxDbLine.send('CPU', {
  value : 50
}, {
  instanceId : 'i-4159e7sdd'
})

##Contribution

This module is using es6 features. So es6 code is written in index_es6.js and it is converted to index.js. Just run following command to do it

npm run build

##license MIT