Skip to content

chetandhembre/node-influxdb-line-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#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

About

line protocol implementation for influxdb in node.js

Resources

Stars

Watchers

Forks

Packages

No packages published