Hacker News new | ask | show | jobs
by jballanc 5244 days ago
Having used Airbrake (when it was Hoptoad), Exceptional, email notifiers, NewRelic, and "rolling your own", I would say that there is definitely value in having a service to handle this for you.

Rolling your own is more effort than it's worth. On top of that, exception tracking is not something you want to have to worry about when your world comes crashing down, and that's exactly when a hand-rolled solution is most likely to fail. (i.e. Are you running your hand-rolled tracker in the same Heroku instance as your app? Then how do you know what went wrong when your app comes down? Are you running it as a separate Heroku instance? Why are you wasting money/resources running twice as many instances as you need?)

NewRelic is nice in the way that it integrates with other charting/reporting for your app. However, on a day-to-day basis, too many errors/exceptions are not caught by NewRelic making it ultimately unreliable. Also, you don't get nearly enough context with error reports to be able to debug the root cause (though they have been improving in this regard).

Email fails as a solution the first time you accidentally deploy an error that gets hit 500 times a second. This is especially true if your app, itself, needs to send emails. I've witnessed a situation where exception email notifications have caused message rate-limiting to kick in preventing customer targeted emails from being sent. Now you have two problems!

I won't say that Airbrake or Exceptional are perfect, but they are good for what they do. Obviously every situation is different, and you have to weigh the pros and cons (e.g. How much traffic are you receiving? Do you have a dedicated Ops team that can handle deploying/maintaining a hand-rolled solution? How much revenue are you loosing because of exceptions? Is your app targeting individuals that are likely to be turned off the first time they see a 500 page? or can you afford to have uncaught exceptions for now?). By no means, though, would I dismiss these solutions out of hand.