Cronitor is a service for heartbeat-style monitoring of just about anything that can send an HTTP request.
This gem provides a simple abstraction for the creation and pinging of a Cronitor monitor. For a better understanding of the API this gem talks to, please see How Cronitor Works.
Add this line to your application's Gemfile:
gem 'cronitor'
And then execute:
$ bundle
Or install it yourself as:
$ gem install cronitor
A Cronitor monitor (hereafter referred to only as a monitor for brevity) is created if it does not already exist, and its ID returned.
Please see the Cronitor Monitor API docs for details of all the possible monitor options.
Example of creating a heartbeat monitor:
require 'cronitor'
monitor_options = {
name: 'My Fancy Monitor',
type: 'heartbeat', # Optional: the gem defaults to this; the other value, 'healthcheck', is not yet supported by this gem
notifications: {
emails: ['test@example.com'],
slack: [],
pagerduty: [],
phones: [],
webhooks: []
},
rules: [
{
rule_type: 'run_ping_not_received',
value: 5,
time_unit: 'seconds'
}
],
note: 'A human-friendly description of this monitor'
}
# The token parameter is optional; if omittted, ENV['CRONITOR_TOKEN'] will be used
my_monitor = Cronitor.new token: 'api_token', opts: monitor_options
Currently this gem does not support updating or deleting an existing monitor.
Once you’ve created a monitor, you can continue to use the existing instance of the object to ping the monitor that your task status: run
, complete
, or fail
.
my_monitor.ping 'run'
my_monitor.ping 'complete'
my_monitor.ping 'fail', 'A short description of the failure'
You may already have the code for a monitor, in which case, the expense of Cronitor.create
may seem unnecessary (since it makes an HTTP request to check if a monitor exists, and you already know it does).
Cronitor does not require a token for pinging a monitor unless you have enabled Ping API authentication in your account settings. At the moment, this gem does not support Ping API auth.
In that case:
my_monitor = Cronitor.new code: 'abcd'
The aforementioned ping methods can now be used.
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
- Fork it ( https://github.com/evertrue/cronitor/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
The bump
gem makes this easy:
rake bump:(major|minor|patch|pre)
rake release