A Node.js/Express based application for service monitoring

Project maintained by jpsoroulas Hosted on GitHub Pages — Theme by mattgraham

Welcome to watcher.js project.

Watcher.js is a Node.js/Express based application that can be used to monitor service status. It is not a competitor of nagios or zabbix or any other advanced monitoring tool. However, it can be a solution for simple cases. The application architecture is simple. At regular intervals service specific defined messages, either as http requests or as raw data to sockets, are send to the service endpoints to find out their status. On the service status resolution, the status is stored internally and is made available either programmatically or via REST requests. On top of the REST services, a simple but handy web GUI is implemented, the watcher web console. From versions starting at 3.x the web console implementation is based on the AngularJS and the UI Bootstrap. The application, at design level, is extensible since custom defined behaviors can be easily applied.

Application extension points

API / REST API summary

Real time event notification

A client can be used for real time event notification from the system. Currently, a client can be notified for the endpoints status updates.

Web console

On top of the application's REST services, a simple but handy web GUI is implemented, the watcher web console. The console enables the user to perform the exposed REST services visually.

For better quality watch the demo directly on vimeo.

Quick start

Put the following code into a file watcher-start.js at the project's route directory and execute it with the node program from the command line. Access the web console at http://localhost:7777/console

// Start watcher.js with default configuration
var app = require('./src/watcher');
% node watcher-start.js


Detailed documentation and examples can be found at

Authors and Contributors

Written by John Psoroulas, 2015.