#InfluxDB-Line-Protocol
implementation of line protocol for influxdb. Specifications of protocol are here.
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
var InfluxDbLine = require('influxdb-line-protocol'
var influxDbLine = new InfluxDbLine(host, port)
influxDbLine.on('error', console.log)
host
: host of influxdb serverport
: 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.
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 forfields
: fields to store with entrytags
: optional fields for tags to add in entrytimestamps
: 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