Runtime monitoring for node.js applications

Headless Monitor

Headless (non-UI) version of the Node Monitor app

This package provides a foundation for monitoring and controlling remote node.js applications.

It introduces the concept of a Probe - a small software component capable of exposing and controlling state within a running node.js server.

Probes are written as Backbone models, and remain dormant in your process until instantiated from remote monitors.

From the monitoring process, a Monitor class is provided to connect with a remote probe.

This package is used for writing and embedding probes into your app server, and for writing custom clients for inspecting and controlling these probes. A companion package - Node Monitor - provides a user interface for building real time monitor dashboards.

Install using npm

$ npm install monitor

Start the monitor service (standalone)

Normally you'll include this package into your own application server, but you can run as a standalone application as well.

$ npm start monitor

Observe a probe from a remote process

In this example we're using a REPL console to connect with the built-in Process probe.

Open a REPL console from another terminal

$ node

Create a monitor for the Process probe

> var Monitor = require('monitor');
> var processMonitor = new Monitor({server:'localhost', probeClass: 'Process'});

Connect with the probe, and view the properties

> processMonitor.connect();
> processMonitor.toJSON();

The monitor is a Backbone model, so you can watch for changes

> var showFreeMem = function(){console.log(processMonitor.get('freemem'))};
> processMonitor.on('change', showFreeMem);
  • API-Docs Monitor internal documentation
  • Node Monitor Companion webapp for building real time monitor dashboards

May be freely distributed under the MIT license

See LICENSE file.

Copyright (c) 2010-2013 Loren West