Error Monitoring
Installation
Before you can start using Honeybadger to squash bugs, you’ll need to install our library into your app. Installation ususally boils down to:
- Installing the honeybadger library
- Setting the API key
- Enabling error reporting
The details vary a little depending on language and platform. But you can always find the correct installation instructions for YOUR app on the “Project Settings” page.
In case you’re wondering, we officially support: Ruby, client-side Javascript, Vue, Elixir, Go, NodeJS, Java, Python, PHP and Clojure.
Once our client library is installed and configured, errors thrown by your application are automatically sent to our API.
Content Security Policy Reports
If you use Content Security Policy (CSP) headers to help mitigate
XSS attacks, you can use Honeybadger to track policy violations. You
can configure the required headers via code when using
Rails or Sinatra, or you can configure your
web server or framework to emit the headers. Either way, configuring CSP
reporting requires specifying the report-uri
directive:
Content-Security-Policy: ...; report-uri https://api.honeybadger.io/v1/browser/csp?api_key=HB_API_KEY_GOES_HERE&env=production
Content-Security-Policy-Report-Only: ...; report-uri https://api.honeybadger.io/v1/browser/csp?api_key=HB_API_KEY_GOES_HERE&report_only=true&env=production
The env
and report_only
parameters are optional. When report_only
is true, CSP report payloads will show up as “CSP Report” in our UI;
otherwise, the label will be “CSP Error”.
Since CSP violations can be noisy, we strongly suggest you track them in a separate Honeybadger project.
The Honeybadger Error UI
When your app reports an error to us, we make the details available on a web page that looks like this:
Yeah, it looks a little complicated. But once you understand what all the pieces are, you’ll see it’s quite simple.
Let’s inspect this page, piece by piece.
Navigating Multiple Occurrences
Honeybadger groups identical errors together, but you can still navigate between each individual occurrence of the error.
Resolved / Unresolved
When an error is marked “unresolved” we won’t send you any additonal notifications when it re-occurrs. Errors are ususally auto-resolved on deploy.
Issue Trackers
You can hook up you issue tracker of choice and manually or automatically add errors to it. You can also comment on the error in Github flavored markdown.
Anatomy of an error
Backtrace
Each line in the backtrace links to the github or bitbucket repo. You can even click a button to open the file in your local editor.
Request Params, Cookies, ENV, etc.
When an error occurrs during a web request, we record all the relevent debug info like params, cookies, the session, etc.
Browsing errors
Once you start collecting errors, it can be difficult to keep track of them. To make it easier, we’ve built a great interface for browsing and searching errors.
Search
With advanced search, you can search by any field of params, environment, cookies or the session.
You use advanced search by entering a special syntax into the search box. Here are a few examples:
If you’d like to search “all errors encountered by people using Chrome”, you can type this into our search box:
request.user_agent:*Chrome*
And you can search deep within the hashes of data that are sent to us when an error is reported, like the context or params:
context.user.favorites.color:blue
Local Edits
One of the advanced features in Honeybadger is configuring your local editor settings so that we can display links to open files locally when showing you an error backtrace:
To configure your editor, visit the Editor Settings page under My Profile. Select the editor you use (if you use a different editor which supports opening files via a custom protocol, let us know about it. Next, enter the absolute path to each project you wish to enable local editor links for, and click “Save” at the bottom. Re-visit your error pages - they should now have the “Open in editor” links!
If you’re using TextMate or MacVim, you should be all set. Sublime and Visual Studio Code don’t ship with a custom protocol by default. In order to make them work, you’ll need to install one of these libraries:
If you’re using Atom, make sure you’re on version 1.23 or later for this to work.
Disclaimer: We do not endorse nor support these libraries; they are 3rd party open source software.