ft-metrics

0.1.3 • Public • Published

FtMetrics

FtMetrics is a node module/express middleware that allows you to simply integrate some basic metrics that comply with the Origami Metrics spec

How to use

Requireing the object

var ftMetrics = require('ft-metrics');

There is also a configure method that you can use to override some default settings.

var ftMetrics = require('ft-metrics');
ftMetrics.configure({
    movingAveragePeriod: 120 , //seconds to keep moving average for, default 1 minute
    maxSampleSize: 4000, //limits the number of events to keep track of during a moving average period - defaults to 10000.
});

Gathering metrics

Counter

Log a value representing a count, e.g. number of running processes, items in a queue, bytes of disk space remaining, seconds since last new content, etc

ftMetrics.count(key, optionalUnits, optionalDescription)

Examples:

ftMetrics.count('something', 'visits', 'blah description');
ftMetrics.count('something');
ftMetrics.count('something');
ftMetrics.count('something_else');
Booleans

Log a simple true/false value

ftMetrics.setFlag('some-boolean', false);
ftMetrics.setFlag('some-boolean', true);
ftMetrics.setFlag('some-other-boolean', true, 'A description of the boolean');
Response time stats

The most common use case for gathering moving average statistics is to measure the response times of an endpoint. FtMetrics provides middleware that will automatically keep track of response times for a given route.

server.get('/v1/someRoute', ftMetrics.monitor(), someAction);

You can also group multiple routes to the same key, by specifying a key to use.

server.get('/route/to/action', ftMetrics.monitor('someAction'), someAction);
server.get('/anotherroute/to/action', ftMetrics.monitor('someAction'), someAction);
Manually tracking moving averages.

You can also manually calculate stats around some other processes that aren't routes e.g. connecting to a backend service.

var process = ftMetrics.createProcess('blah');
process.start();
process.end();

Displaying Metrics

You can get an object representation of all the gathered metrics with the getJSON method.

var metrics = ftMetrics.getJSON();

There is also an express method that can be used to handle the __metrics endpoint as per the Origami spec.

server.get('/__metrics', ftMetrics.endpoint);

Readme

Keywords

Package Sidebar

Install

npm i ft-metrics

Weekly Downloads

8

Version

0.1.3

License

BSD

Last publish

Collaborators

  • adgad