Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Health checking Connect middleware (see also rack-ping for Rack/Ruby)

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Makefile
Octocat-spinner-32 Readme.md
Octocat-spinner-32 index.js
Octocat-spinner-32 package.json
Readme.md

Connect-Ping

A Connect middleware that should indicate the health of your service.

A load balancer, for example, can use this endpoint to decide whether to include the service in its pool (in ELB for example, this is called "health").

Usage

Get connect-ping from npm: $ npm install connect-ping

Here is a simple example (see examples)

var connect = require('connect')
var ping = require('connect-ping')


connect.createServer(
  connect.logger(),
  ping({
    ok_text: 'awesome',
    check_url: 'http://google.com',
    ok_regex: /bingo/,
    version: "2.0"
  })
).listen(4000);

Options

When building/mounting your middlewares, you might want to use the configuration:

  • version is an accessor for your application version. A global version variable might be a good idea.
  • check_url is a url that ping will fetch and run ok_regex on. If the match is ok, we're good. You must specify check_url and ok_regex togather. timeout_secs is the amount of seconds we wait until spitting out an error.
  • check will accept a function to run. This is a good alternative to check_url: run a couple of sanity checks to indicate you're good.
  • ok_code, error_code, ok_text, error_text are configuration for you to use, to configure against LB quirks. The default config should work against ELBs (Amazon elastic LB).

Headers

ping will output intelligent headers. First x-ping-error will try to explain why ping failed.

Next, x-app-version will expose the current deployed version of your app. This is good in order to validate nothing crawled up to production, as well as validation for post-production deployment.

ping will bust any browser/client cache for you.

Contributing

Fork, implement, add tests, pull request, get my everlasting thanks and a respectable place here :).

Copyright

Copyright (c) 2011 Dotan Nahum @jondot. See MIT-LICENSE for further details.

Something went wrong with that request. Please try again.