Rails Exception Handling and Notification with Errbit

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.

6 Replies to “Rails Exception Handling and Notification with Errbit”

  1. I went through almost the same progression as you, though I tried exceptional before hoptoad. I, too, moved to errbit when I found (now airbrake) not catching errors or not having data associated with my errors. But the UI didn’t really do it for me, so I started working on my own… Honeybadger

    I’ve been using it for months, and we went public with it last month, and of course it’s awesome. 🙂 We’re adding new features regularly, and I think you’ll really like the speed of the UI. Check it out and let me know what you think.

  2. thanks for bloging about this, i didn’t realize the project was so far along

    i am freed from the mediocrity of the hosted solutions!! hooray!

  3. Did you try Sentry?

    “It was originally conceived at DISQUS in early 2010 to solve exception logging within a Django application. Since then it has grown to support many popular languages and platforms, including Python, PHP, Java, Ruby, Node.js, and even JavaScript.”

    This is a best we have found so far… It is also open source.
    We use it for ColdFusion and Grails apps.

  4. My team had to go commercial to get any sort of reasonable UX and quality error notifications – we went for Raygun at http://raygun.io

    In addition to having a slick UI it’s got really useful stack traces, environment & response data etc, and wide support for ecosystems and frameworks – most of the popular web ones including Ruby, Python, Node.js, JavaScript, PHP, ColdFusion, WordPress, ASP.NET, Nancy, as well as mobile with .NET for WIndows Phone, Xamarin for iOS and Android and more. It’s also got top notch email notifications, with intelligent group aggregation and summary reports (with statistics). One of the killer features is not only the GitHub integration, but HipChat too – so we get error notifications right in our team chat room.

Leave a Reply

Your email address will not be published. Required fields are marked *