Skip to content

katalyst/healthcheck

Repository files navigation

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.

About

Health check routes and functions

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages