Rapporteur Load Check
Load checking for Rapporteur.
Installation
Add this line to your application's Gemfile:
gem 'rapporteur-load_check'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rapporteur-load_check
Supported environments
Supported Ruby versions:
- MRI 2.0.0
- MRI 1.9.3
- MRI 1.9.2
- MRI 1.8.7
Usage
To add the check to your application, define the check in your environment or application configuration files or initializers, such as:
# config/initializers/production.rb
Rapporteur.add_check(Rapporteur::Checks::LoadCheck)
And, if your server load is currently below the configured threshold, 0.54 for
this example, this library will add a load
key and value to the success
response of Rapporteur (an HTTP 200 response):
{
"load": 0.54
}
If, however, your server load is too high - let's say 12.32 - then this library
will fail, cause Rapporteur to give a non-success response, and add a load
key and message to the error output of the Rapporteur (an HTTP 500 response):
{
"load": "above allowed threshold (12.32 > 8)"
}
Configuration
By default, a load value of 8 or greater triggers a failure. You can adjust this value by passing the threshold to LoadCheck.new, like so:
Rapporteur.add_check(Rapporteur::Checks::LoadCheck.new(4))
The above would cause the checker to fail if load goes above 4.0.
Localization
If you would like to localize the failure response, you may do so by adding a
rapporteur.errors.load.excessive
definition to your local I18n locales. This
library will provide the value
(current load value) and tolerance
(configured threshold) in case you would like to include those values in your
message.
For example:
fr:
rapporteur:
errors:
load:
excessive: "est trop élevé (%{value})"
Contributing
- Fork it
- 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 new Pull Request