Katalyst::Healthcheck

Rails application and background task health monitoring.

Installation

Add this line to your application's Gemfile:

gem 'katalyst-healthcheck'

And then execute:

$ bundle

Or install it yourself as:

$ gem install katalyst-healthcheck

Usage

Configuration:

Redis URL will automatically be set from Rails configuration, but can be configured manually in an initializer, e.g.

Katalyst::Healthcheck.configure do |config|
  config.store.redis.options.url = "redis://hostname:port"
end

Add to routes:

get '/healthcheck', to: Katalyst::Healthcheck::Route.static(200, "OK")
get '/healthcheck/status', to: Katalyst::Healthcheck::Route.from_tasks
get '/healthcheck/dashboard', to: Katalyst::Healthcheck::Route.from_tasks(detail: true)

With the above configuration, the following routes will be available:

/healthcheck

A basic check that tests that the rails application is up and running.

/healthcheck/status

Tests that all application background tasks are running as expected.

All background tasks to be monitored must register successful completion of their work using the Katalyst::Healthcheck::Monitored concern's healthy! and unhealthy methods, e.g.

include Katalyst::Healthcheck::Monitored

define_healthcheck_task :my_task, "My task description", interval: 1.day

def do_task
  ... task code here ...
  healthy!(:my_task)
rescue Exception => e
  unhealthy!(:my_task, e.message)
end

Call healthy! at successful completion of a task to mark the task as healthy. Optionally, calling unhealthy! immediately marks that task as unhealthy. If a task is not marked as healthy! within a predefined interval, that task is considered unhealthy.

License

The gem is available as open source under the terms of the MIT License.