sta

statman

collection of tools for capturing application metrics

Showing:

Popularity

Downloads/wk

1.3K

GitHub Stars

6

Maintenance

Last Commit

2yrs ago

Contributors

6

Package

Dependencies

6

Size (min+gzip)

36.7KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

statman Build Status on npm Greenkeeper badge Dependency badge

statman is a set of modules to assist with collection of metrics

Supported metrics

  • gauge: represents a point in time measurement
  • meter: measures flow, including count and average time
  • stopwatch: used to record timings

Install it!

statman is decomposed into several smaller modules. To utilize the metric modules, you have two choices

  • access directly: this is recommended if there is one single metric package. Like if you just want the stopwatch
  • access via statman: this provides some capabilities such as a registry to easily access many metrics

Option 1: access directly

Install using npm:

npm install statman-stopwatch

Reference in your app:

var Gauge = require('statman-stopwatch');
var gauge = Gauge('gauge-name');

Option 2: access from statman

Install using npm:

npm install statman

Reference in your app:

var statman = require('statman');
var gauge = new statman.Gauge('gauge-name');

Use it!

Registry

statman provides a registry that allow for you to track your metrics.

You can manually add metrics to the registry. For the built in metrics, you can also auto-register those while creating

// register a metric with a key
var metric = { ..some object.. }
statman.register('my metric name', metric)

// register a metric with implicit key = name
var metric2 = { name: 'my second metric' ..some object.. }
statman.register(metric2);

// access metric from registry
statman.registry('my metric name') //return metric

Gauge

For the capabilities of gauge see: https://github.com/jasonray/statman-gauge

The following two approaches are equivalent

Explicit creation of gauge

var gauge = statman.gauge('metric-name');
statman.regiser(gauge);
gauge.set(5);

Create and register a gauge

statman.gauge('metric-name').set(5);   //if gauge by name 'metric-name' does not exist, create one, and set to '5'
statman.gauge('metric-name').value()   //return '5'

Meter

meter

Stopwatch

stopwatch

Extend it!

TODO: how to build a new metric

Build it!

  • Make sure that you have node and npm installed
  • Clone source code to you local machine
  • Setup dependencies: npm install
  • run tests: npm test

Roadmap

  • Add meter
  • Move stopwatch back to its own repo. Sigh.
  • Create reporters to output metrics
  • Provide guidance how to hook with HTTP/TCP/async calls
  • Provide hook to register with express
  • Integrate with visualizations
  • Provide web interface to access metrics

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial