A base library for Airbrake error reporting.
Toadhopper can be used to report plain old Ruby exceptions, or to build a framework-specific gem such as toadhopper-sinatra.
begin
raise "Kaboom!"
rescue => e
require 'toadhopper'
Toadhopper("YOURAPIKEY").post!(e)
end
You can install it via rubygems:
gem install toadhopper
Posting Notices Over SSL
Toadhopper can transport your messages over SSL.
To enable SSL, just specify a :notify_host
with a https:// protocol.
Toadhopper.new("YOURAPIKEY", :notify_host => 'https://airbrake.io').post!(e)
Note: You must have a paid plan for Airbrake to accept your messages over SSL.
Example with :transport
Control freaks can customize a Net::HTTP to their liking with :transport
.
require 'net/https'
require 'toadhopper'
def my_transport
domain = 'api.airbrake.io'
port = 443
transport = Net::HTTP.new domain, port
transport.set_debug_output $stderr # View verbose debugging
transport.use_ssl = true
transport.ca_file = Toadhopper::CA_FILE
transport.verify_mode = OpenSSL::SSL::VERIFY_PEER
transport.open_timeout = 7 # seconds
transport.read_timeout = 5 # seconds
transport
end
def my_exception_handler(exception)
api_key = 'YOURAPIKEY'
Toadhopper.new(api_key, :transport => my_transport).post! exception
end
Deploy tracking
You can use Toadhopper to notify Airbrake of deployments:
Toadhopper('YOURAPIKEY').deploy!
The method accepts options to set the environment, SCM revision, etc.
There is Capistrano support for deploy tracking. Simply require toadhopper/capistrano
in your deploy config and set the variable airbrake_api_key
:
require 'toadhopper/capistrano'
set :airbrake_api_key, 'YOURAPIKEY'
Supported Capistrano Keys
:airbrake_notify_host
:airbrake_error_url
:airbrake_deploy_url
:airbrake_transport
Compatibility
Toadhopper is tested against and compatible with the following ruby platforms:
- 1.8.7
- 1.9.2
- 1.9.3
- ree 1.8.7-2012.02
- jruby 1.6.7 in both 1.8 mode and 1.9 mode
rubinius 2.0.testing branch in both 1.8 mode and 1.9 mode
For jruby support, you need to
gem install jruby-openssl
if you do not already have that gem. More info on why this is.
Development
Install Bundler 0.9.x, then:
% git clone git://github.com/toolmantim/toadhopper.git
% cd toadhopper
% bundle install
% bundle exec rake test
If you set a AIRBRAKE_API_KEY
environment variable it'll test actually posting to the Airbrake API. For example:
% bundle exec rake test AIRBRAKE_API_KEY=abc123
Set AIRBRAKE_FULL_TEST
to test integration operations that require a paid Airbrake plan such as posting over SSL, deploy tracking, and github integration. For example:
% bundle exec rake test AIRBRAKE_API_KEY=abc123 AIRBRAKE_FULL_TEST=1
Beware: Setting AIRBRAKE_FULL_TEST
will record a bogus deployment in your Airbrake project and auto-resolve any pre-existing development errors.
To generate the docs:
% bundle exec yardoc
To build the gem:
% bundle exec rake build