Bonanza has travelled a long road when it comes to trying out exception handling solutions. In the dark & early days we went simple with the Exception Notification plugin. The drawbacks of it were many, starting with the spam that it would spew forth when our site went into an error state and we’d end up with thousands of emails. There was also no tracking of exceptions, which made it very difficult to get a sense for which exception was happening how often.
Eventually we moved to HopToad (now Airbrake). It was better, but lacked key functionality like being able to close exceptions en masse or leave comments on an exception.
From there we moved to Exceptional, which we ended up using for the past year. It was alright, when it worked. The problem was, for us, it frequently didn’t work. Most recently, we spent the last week having received two exceptions reported by Exceptional, when New Relic clearly showed that hundreds of exceptions had happened over that time period. Also damning was the presentation of backtraces, which were hard to read (when present), as well as an error index page that made it difficult to discern what the errors were until they were clicked through.
Enter Errbit. Jordan found this yesterday as we evaluated what to do about the lack of exceptions we were receiving from Exceptional. Within a couple hours, he had gotten Errbit setup for us, and suddenly we were treated to hundreds of new exceptions that Exceptional had silently swallowed from our app over the past year.
But it’s not just that Errbit does what it is supposed to — it’s the bells and whistles it does it with.
Specifically, a handful of the features that make Errbit such a great solution:
- Can set it up to email at intervals (e.g., 1st exception, 100th exception) so you hear about an exception when it first happens, and get reminded about it again later if it continues to be a repeat offender
- Allows exceptions to be merged (or batch merged) when similar
- Allows comments by developers on exceptions, and shows those comments from the main index page so you can quickly see if an exception is being worked on without needing to click through to it
- Easy to read backtrace, plus automagic tie-in to Github, where you can actually click on the backtrace and see the offending code from within Github (holy jeez!)
- Liberal use of spacing and HTML/CSS to make it much easier to read session, backtrace, etc relative to Exceptional and other solutions we’ve used
- Open source, so you can add whatever functionality you desire rather than waiting for a third party to get around to it (a fact we’ve already made use of repeatedly in our first two days)
- Open source, so the price is right (free)
Simply put, if you’re running a medium-to-large Rails app and you’re not using Errbit, you’re probably using the wrong solution. Detailed installation instructions exist on the project’s Github home.