Dealing with noise is one of the biggest challenges when monitoring JavaScript errors on a busy site. Old browsers, misbehaving extensions, and adblockers can all cause erroneous or irrelvant errors. Sometimes lots of them. Giving our customers better tools to filter and sort through the sea of errors is a priority for us. The easier it is to find important problems the faster it is to fix them.

To that end, we’ve recently released a new suite of global filtering capabilities in TrackJS!

Global Filter Bar

TrackJS has always had a number of filtering options, but now we’ve merged them all in a single toolbar that can be accessed from every page.

The new global filter dropdown.
The new global filter dropdown.

You can switch applications, apply different status values, or add your own custom filters all in one spot. You can also adjust the time range you’re filtering by, and even save your filters for quick recall later or sharing amongst your team.

Multiple Filters

It’s now possible to filter your errors by multiple properties. Previously you could add one custom filter, but now you can have as many as you want. You can combine error message filters with domain based filters, or user and version, or any other combination.

Filter by specific browser and application version.
Filter by specific browser and application version.

It’s also possible to apply multiple filters for the same property. For example, if I cared only about errors from two of our domains, I could create a filter to see all the errors that came from either trackjs.com or docs.trackjs.com.

Filtering to multiple domains.
Filtering to multiple domains.

Quick Suggestions

To make it easier to find important data, we’re displaying the top 5 values for each tab and letting you quickly apply those values as filters.

Top 5 error messages.
Top 5 error messages.

As you start adding more filters, we will adjust the top values on each tab to take in to account the filters you’ve already applied, so you can quickly drill down and discover errors on your site.

New Filter Types

We’ve also enhanced the kinds of filtering you can do. You can, of course, apply filters that match exact error values, but you can also apply search-based filters. We’ve even added the ability to “invert” filters, so you can exclude errors that match certain criteria.

Exact Match

By default, when you add a new filter from somewhere in the UI, it’s an exact match filter. That is, it will filter all your errors down to the set that matches that property value exactly. Exact match filters are denoted by an equals icon.

Matching a specific error message.
Matching a specific error message.

Search Filters

If you want a broader set of matching errors, you can create a search filter. By typing in to the filter box on any of the tabs, you will be presented with the search option in the autocomplete box. If you select this, you will create a search filter, which will include (or exclude) all errors in the search result set.

Clicking the top result will create a search filter, which will include all of those exact matches below.
Clicking the top result will create a search filter, which will include all of those exact matches below.
An applied search filter.  Note the spyglass icon to denote it.
An applied search filter. Note the spyglass icon to denote it.

Search filters are really powerful as they allow you to add all kinds of wildcard and pattern based filters without having to learn nasty syntax or a proprietary query language.

NOT Filters

Many times JavaScript error noise is caused by one or two offenders. Maybe a single user experienced an infinite error loop, or someone using an unsupported browser was causing dozens of new errors. In that case it’s easier to exclude those errors rather than include everything else.

To exclude a certain error value, simply click the orange “minus” icon wherever you see it.

Creating a NOT filter.
Creating a NOT filter.
Creating a NOT filter.
Creating a NOT filter.

NOT filters are denoted with a “not equals” icon.

Applied NOT filter.
Applied NOT filter.

Once applied, any errors matching the filter value will be hidden from the UI, making it easier to exclude noisy users and browsers.

Saving Filters

If you’ve set up a series of filters that you’d like to save, or share with someone else on your team, you can click the “save filter” icon in the right side of the filter bar. Enter a name for your saved filter and click “Save.” Alternatively, you can load a previously saved filter just by clicking on the name in the dropdown.

Save or load a filter.
Save or load a filter.

Adding Filters from Other Places

To make adding filters even more efficient, you can also create them from the error list pages. For example, here we see a list of recent errors, and the options we have to filter them further. You can create exact match and NOT filters.

Add filters from the recent error page.
Add filters from the recent error page.

There are a few additional properties that you can filter by that are not present in the filter bar dropdown, and can only be accessed from these screens: Operating System, IP address, and whether an error has a stack trace.

Excluding certain IP addresses and including specific operating systems.
Excluding certain IP addresses and including specific operating systems.

Taming the Noise

We think the new filtering capabilities give our customers better tools to hone in on actual issues occurring in production. The filters can tame the noise and surface more actionable data. We’re always soliciting feedback from our customers, so if you like, or hate, something about the new filtering capabilities, please let us know! We’ll be monitoring usage and seeing which pieces get used the most, and making any adjustments as necessary.

Did you like this?
CTO TrackJS

What to do Next:

1. Try TrackJS on Your Website

TrackJS gives you the visibility to find and fix your errors before users find them. Get started in 5 minutes tracking errors with all the context you'll need to squash the important bugs in your app.

2. Get the Debugger Newsletter

Join The Debugger for amazing JavaScript tips, debugging walkthroughs, news, and product releases for Request Metrics. No more than once a week, probably a lot less.