apptime

Uptime monitoring linked to a mailer

#apptime

Server uptime monitoring linked to a mailer. You can run any type of command to check that something is up/down.

##Quickstart

$ sudo apt-get install g++ zlib1g zlib1g-dev autoconf # for ejdb
$ npm install apptime
$ pico config.coffee # edit config file
$ PORT=6661 CONFIG=config.coffee apptime

You can leave the PORT empty. If you do not provide a CONFIG it will default to the example one in the app directory. The path to CONFIG is relative to your current PWD unless the path starts with a / in which case it is absolute.

##Config

The config.coffee file (think of it as a JSON file on steroids) exports the following:

#####timeout How often to monitor the servers (in minutes). Each batch will run in a queue with a concurrency of 1.

#####email.active Shall we actually send an email? You can still use the web interface.

#####email.fields For config of these follow instructions at Nodemailer.

#####email.smtp For config of these follow instructions at Nodemailer.

#####email.templates An object with Eco templates for building emails to be sent. Use HTML, plaintext is auto-generated.

#####handlers Each key is a type of a job to run. Just a way to allow you to run monitor the same server in more ways than one.

#####handlers.command A command to execute. All commands are run relative to the scripts directory (of course you can run commands linked to your /bin directory).

An err or stderr on child_process.exec of the command means the server is down.

Command uses Eco syntax and is passed arguments from handlers.jobs (see below).

#####handlers.success Not required. Can be a string or a RegExp that will be used to check if command was succesfull. This happens after we check whether the command throws err or stderr (see above).

#####handlers.jobs Keys represent names of servers. The values are arguments to be passed to the commands (see above).

##Client-side app

Install dev dependencies (component etc.):

$ npm install -d

Install components:

$ (cd src/dashboard/app ; ../../../node_modules/.bin/component install)

Re-build the sources:

$ coffee src/dashboard/build.coffee