MonitorPage
A gem to view status checks of multiple services from a single page.
Usage
Create an initializer and setup your checks. Each check should have a pass and an error call.
MonitorPage.configure do
# Whitelist IPs that have access to the status page. Can be a single IP or of CIDR notation.
# Optional: if left out it will be publically available
permit '1.1.1.1', '1.1.2.0/24'
check 'Sidekiq' do
if Sidekiq::Queue.all.select{ |q| q.size > 50 }.any?
error "Sidekiq has too many jobs"
else
pass
end
end
check 'Passing Check' do
pass
end
check 'Failing Check' do
error "GAME OVER MAN, GAME OVER!"
end
endIn your routes:
mount MonitorPage::Engine, at: '/monitor_page'Visiting /monitor_page should give you something like this:
Sidekiq: Passed
Passing Check: Passed
Failing Check: Failed - GAME OVER MAN, GAME OVER!
-----------
Overall: Failed
Overall will always display Passed or Failed based on if all the above checks have passed or if there is a failure.
Installation
Add this line to your application's Gemfile:
gem 'monitor_page'And then execute:
$ bundleOr install it yourself as:
$ gem install monitor_pageLicense
The gem is available as open source under the terms of the MIT License.