Exception monitoring is always critical to handle. Rails plugin ExceptionNotifier made this task easier by providing a mailer object and a default set of templates for sending email notifications when errors occur in a Rails application. Two companies (Exceptional and Hoptoad) help with this by providing a third party service which intercepts exceptions and displays them in a web interface. Notification by Mail or SMS is also an option.
We talked to Eoghan McCabe from Contrast (Exceptional) and Matt Jankowski from Hoptoad.
The idea from those two consultancies is born from maintenance experience on internal and external Rails applications:
Hoptoad - We've been using the service on various internal and client applications that we maintain over the last six months, and have watched with pride as our tadpole of an error catching web service has matured into the crazy toad that it's become.
Eoghan explains Expceptional:
Exceptional - When we build apps for clients we obsessively monitor things like performance, traffic and exceptions. We had been using the Exception Notifier and Logged_Exceptions plugins and these were extremely helpful. But we wanted to expand on these to help their use fit better into our workflow. We wanted to control the flood of e-mails, get notified in different ways, collaborate on the investigation of exceptions and generally get a grip on the state of exceptions over all the apps we manage.
Exceptional and Hoptoad both launched recently (Exceptional still being in beta). Since then the services are improved with new features.
Since its official launch, Hoptoad has caught more than 300000 exceptions for external applications.
On the technical side, Eoghan lists the Rails plugins Exceptional uses:
- UltraSphinx – for it's awesomely reliable search indexing
- WillPaginate – every Rails project needs this plugin
- hubahuba – tasty set of extensions for basic classes
- rspec
Matt lists what Hoptoad is uses:
- A Raw Rails app (if we run into scale issues, we'd conceivably separate the "error catcher" from the rest of the application, and/or add servers)
- Homegrown testing tools (shoulda + factory girl) during development
- subdomain_fu plugin from Intridea, and DHH's openid plugin
- Firstly HAML for entire application
- Setup hosting by EngineYard
Once installed (in Exceptional or Hoptoad), your exceptions will be intercepted and reported by Exceptional interface where you can set preferences such as Email Notification or SMS number (available in Exceptional only). The exception will then be tracked with details on how it occurs and its status can be changed to resolved, closed or ignored.
Exceptional |
Hoptoad |
Both asked about their killer feature over their mutual competitor, the two services appeared to be slightly similar.
Eoghan explains some of the features Exceptional seems to have over Hoptoad:
The features exclusive to Exceptional that these users have highlighted as important to them include comments, integration with Lighthouse, integration with Campfire, SMS notifications and so on. We also handle 404 based exceptions and have plans to provide an elegant interface to manage them. Hoptoad ignore 404 based exceptions in their plugin, like Exception Notifier.
Exceptional is also concentrating on Rails application while Hoptoad is not framework-specific:
We're concentrating solely on Rails so we can adapt our interface specifically to help Rails developers with their unique problems.
Both services are free.
How do you handle exceptions or exception notification in Web applications?
Update: Hoptoad has been re-branded to Airbrake Bug Tracker