JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q49883F
  • License Apache-2.0

A library to instrument your node application for Graphite reporting

Package Exports

  • node-instrument

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-instrument) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-instrument

Library to instrument your node application for graphite reporting

Installation

npm install node-instrument

Usage

var instrument = require('node-instrument')();

Options

var options = {
    carbonHost : '127.0.0.1',
    carbonPort : 2003,
    type : 'udp4', // [udp4, tcp4]
    prefix : '',
    suffix : '',
    verbose : false,
    interval : 5000,
    callback : null,
    localAddress: '0.0.0.0' // for tcp binding to specific network adapter
};

Manual Reporting

var instrument = require('node-instrument')({prefix: 'localhost'});
instrument.addObject({myMetric: 1});
instrument.send();

Automated Interval Reporting

var instrument = require('node-instrument')({prefix: 'localhost'});
instrument.start();
instrument.addObject({myMetric: 1});

Put/Add

The 'put' and 'add' methods act slightly different.
put and putObject - replaces the value of a metric if it already exists in the queue.
add and addObject - adds to the value of a metric if it already exists in the queue.

Name/Value metrics

instrument.add('server.metric1', 1);

Object/nested metrics

instrument.addObject({myMetric: 1});
// or
instrument.addObject({myMetric: {sub: 1}});
// or 
instrument.addObject({myMetric: {sub: 1}, 
    deep: {
       down: 1
       }
    });

Methods

add: function()

Add metric name/values together

instrument.add('server.metric1', 1); // 'server.metric1' == 1
instrument.add('server.metric1', 1); // 'server.metric1' == 2
instrument.add('server.metric1', 1); // 'server.metric1' == 3

addObject: function()

Add metric object/values together

instrument.addObject({myMetric: {sub: 1}}); // 'myMetric.sub' == 1
instrument.addObject({myMetric: {sub: 1}}); // 'myMetric.sub' == 2
instrument.addObject({myMetric: {sub: 1}}); // 'myMetric.sub' == 3

getQueueAsText: function()

Returns a text readout of the current queue

getQueueSize: function()

Returns the number of metrics waiting in queue

getValueByName: function()

Returns the current value of a metric in the queue

instrument.getValueByName('myMetric.sub'); // number

log: function()

Internal logging function

put: function()

Inserts or replaces the value of a metric in queue

putObject: function()

Inserts or replaces each flattened metric in a queue

send: function()

Manually flush the node-instrument queue and send to Graphite

instrument.send(); // Flushes the internal queue to the Graphite instance

sendCallback: function()

Internal function to execute the options.callback

setGraphiteClient: function()

Convenience method for setting the Graphite Client after node-instrument has been initialized

start: function()

Start the interval reporting of node-instrument

stop: function()

Stops the interval reporting of node-instrument