Audit Log

Documentation - Audit Log

The Audit log provides a way to observe past actions by Teams you are part of. It is available to Business level plans and above.

To access the audit log, click on your username in the top right corner, then choose Audit Log:

 

From here, you can narrow down your search using the query panel on the left hand side. You can change the date range covered, the types of activities, which applications or plans to look at, and which users you are interested in. Changes to the query panel will be applied automatically.

We're always adding new audit activity types but if you think we're missing something, contact support.

Dashboards

Documentation - Dashboards

Raygun has customizable dashboards, so you only see information you care about. This documentation will show you how to view and edit your dashboards.

Viewing your dashboards

To locate your dashboards, click on the button in the top left corner of the Raygun application. Within the drop down, switch to the Dashboards tab to view the dashboards you have access to. Click any listed dashboard to view it. Dashboards belong to plans, so if you are a member of multiple plans, you can switch between them by clicking the plan in the left hand margin of the drop down.

Primary dashboard

One of the dashboards in the image above has been labeled as Primary. Every plan has a primary dashboard that can be customized just like any other dashboard, but has a few special characteristics. The Primary dashboard starts off with a preset layout of tiles using data from your top 5 applications with the most data. The Primary dashboard has a Reset function that reverts any customizations back to the preset tile layout using data from your top 5 applications at the time of reset. The primary dashboard can not be deleted.

Legacy dashboard

Another dashboard in the image above is labeled as Legacy. This will link you to the old global dashboard which can not be customized. Note that this will only be available to plans that have had a legacy dashboard. Newly created plans only have customizable dashboards.

Editing a dashboard

In order to make any changes at all to a customizable dashboard, you first need to switch the dashboard into edit mode. To do this, click the "Edit dashboard" button in the top right corner of a dashboard.

 

Saving changes

It's important to note that none of the changes that you make to a dashboard will be persisted until you press the green "Save changes" button in the edit bar. This applies to all of the editing functions documented in the following sections. Make sure to always save any changes you're happy with before navigating away from the dashboard you're working on. After saving changes, the dashboard will switch out of edit mode.

 

In order to avoid accidental saves, you'll need to click the check box and then hit "Yes, save" in the modal that appears. Everyone who can view the dashboard will see the changes that you save.

 

Canceling changes

If you've made some changes to a dashboard but then want to cancel them rather than saving, click the "X" button on the right hand side of the edit bar. This will reload the dashboard and switch out of edit mode.

 

Since this operation is going to lose your unsaved changes, you'll need to click the check box and then hit "Yes, revert" in the modal that appears. If you don't see this modal, then no changes were made to the dashboard.

 

Renaming a dashboard

While in edit mode, a pencil icon will appear next to the dashboard's header. Click anywhere on the title or pencil icon, and then type in the title you want for your dashboard. The title is used to identify your dashboard in the switcher, so it helps to give your dashboards unique and meaningful names.

 

Adding a tile

A tile is a component of information from the Raygun Platform, such as a list of errors or a time series chart of user sessions. The highlight of Raygun dashboards are the highly configurable tiles. You can add as many tiles as you need, and can even add the same type of tile multiple times and configure them differently.

1. To add a tile, first make sure the dashboard is in edit mode.

2. In the edit bar, click on the blue "Add tile" button.

3. You'll be presented with a modal listing the various tiles you can add to your dashboard. Note that some tiles may not be available to you if you have no applications with Raygun Crash Reporting or Pulse (RUM) data. The modal allows you to search by name, and sort by name or tile type to help you find what you want to add to your dashboard. Click the blue "Select" button next to a listed tile that you want to add to your dashboard.

4. To finish up, configure the tile with the data you want to display.

  • Most tiles have a title that gets displayed in their headers.
  • Some tiles have a date range to fetch the data from, whereas other tiles represent live values of what's happening right now.
  • Use the "Select application" drop down to specify where to source the tiles data from. A single tile can source data from any number of your applications.
  • The above image is just one example of configuring a tile. Different types of tiles can have different options specific to what they display.

5. The blue "Add tile" button will be disabled until you've configured enough information for the tile to display data. The main thing you usually need to add is the applications to fetch the data from. Once you're ready, click "Add tile" for the tile to be added to your dashboard which will then scroll into view.

Moving a tile

Any of the tiles can be moved around while the dashboard is in edit mode. This allows you to customize the tile layout and display them in a preferred arrangement.

Move a tile by holding down the left mouse button over any non-interactive area of a tile. Then, drag and drop the tile to another place on the grid. As you drag a tile around, other tiles will move out of the way, and when dropped, the tile will automatically snap to the grid.

Resizing a tile

No customizable dashboard can be without the ability to resize tiles, which aids in achieving your ideal tile layout.

While the dashboard is in edit mode, drag the arrow in the bottom right corner of any tile to resize it.

Just like moving a tile, the dimensions of the tile will snap to the grid when the resize handle is dropped. Some tiles have a minimum size, (e.g. 2x3 grid units), and cannot be resized smaller than their minimum.

Configuring a tile

Any options that you configure while adding a tile can be revisited. To open the tile configuration modal, make sure the dashboard is in edit mode, then click the cog icon in the top right corner of any tile you want to edit.

Once you're done editing any of the tile's options, click the green "Apply" button.

Renaming a tile

The title is one of the options available in a tile's configuration modal. If the title is the only thing you want to change on a tile, then you can alternatively edit the title in-place. When the dashboard is in edit mode, a pencil icon is displayed next to each tile's header. Clicking anywhere on the title or the pencil icon will allow you to type in a new title.

Deleting a tile

1. You can remove a tile from your dashboard while in edit mode by first clicking the cog icon in the top right corner of the tile you want to remove.

2. In the bottom left corner of the tile configuration modal, hit the "Delete" button.

3. As this is a destructive action, you'll need to check the box and click "Yes, delete" in the next modal that appears.

Clearing all tiles

If you want to re do a dashboard from scratch, you can clear the dashboard which will remove all the tiles. While in edit mode, click the "Clear" button near the left hand side of the edit bar.

This will look slightly different if you are currently working on your plan's primary dashboard.

As this operation will lose any other edits you've made while in edit mode, you'll need to click the check box and hit "Yes, clear" in the modal to avoid accidents. Note that clearing the dashboard does not persist until you save changes when you're done editing.

Resetting the primary dashboard

Resetting is a function only available to a plan's primary dashboard. Resetting will find your top 5 applications with the most data and replace everything on the primary dashboard with a preset tile layout. In edit mode, click the "Reset dashboard" button within the left hand drop down of the edit bar.

This operation will lose any other edits you've made, so you'll need to click the check box and hit "Yes, reset" in order to confirm this function. Just like all other dashboard editing operations, none of the affects that resetting has on the primary dashboard will be persisted until you save changes.

Creating a dashboard

To add a whole new dashboard to your plan, open the switcher in the very top left corner of the Raygun application. If you have multiple plans, select which plan you want to add a dashboard to in the left hand margin. Make sure you're viewing the "Dashboards" tab, and then press the blue "Create dashboard" button.

The dashboard is created instantly and added to the plan. The dashboard will start out in edit mode so that you can get straight into the customizations. Remember to give your new dashboard a meaningful name. You'll need to save changes in order to persist any edits you make.

Note that different Raygun plans have different limits on how many dashboards you can create.

Deleting a dashboard

If you have a dashboard that you don't need anymore, you can delete it while the dashboard is in edit mode. Click the "Delete" button on the left hand side of the edit bar. Note that all Raygun plans have one primary dashboard that can not be deleted. If you do not see the "Delete" button, it will be because you're currently working on your plan's primary dashboard.

As this is a destructive operation that can not be undone, you'll need to click the check box and press "Yes, delete" in order to finalize this operation.

TV mode

Information displayed on your dashboards will update every few minutes, providing you with a live view. You may choose to switch to TV mode and have the dashboard on a permanent screen to monitor your applications.

You can put a dashboard into TV mode by clicking the TV icon on the right hand side of the header bar. TV mode is only available if the dashboard is not in edit mode.

In TV mode, click on the pin icon to unpin/hide the header bar. The header bar can be accessed again by moving the mouse against the top of the screen. To exit TV mode, you can either click the "X" button in the header bar, or press the Esc keyboard key.

Submitting feedback

We'd love to hear how you find the new dashboards feature. Please send us your comments and suggestions anytime by clicking on the smile icon.

Write in your feedback and click the "Send" button.

Deleting Error Groups

Documentation - Deleting Error Groups

Raygun allows you to delete error groups off the dashboard. Once deleted they will no longer be accessible, though a repeat occurance will recreate the error group.

Deletion can be done from an application's error dashboard. By ticking the box beside an error group a delete option should appear above.

Simply hit delete and confirm to remove the error.

Note: deleted error may not disappear instantly as it is removed by a background process.

Removing all Errors

You can remove all error groups from an application on the Application Settings page.

Select the type of errors you wish to delete (from Active, Resolved, Ignored or Permanently Ignored) and click the Delete button beside. You will then have to confirm the deletion.

This will remove all error groups of the given status within an application.

Error Statuses

Documentation - Error Statuses

This article describes the meaning and usage of the status of error groups in the Raygun dashboard.

Raygun currently lets you assign error groups to one of five statuses. These are:

  • Active
  • Resolved
  • Resolved In Version
  • Ignored
  • Permanently Ignored

When an error is first received it is assigned to Active, and is visible in the first tab. You can then take action to change it to another status. This can be done in two ways:

  • From the individual error group view: when viewing the Exception Details for an error group, click the top-right dropdown to assign this error group to another status
  • From the application view: when viewing all errors in an application, select one of the four status tabs, select one or many error groups using the checkboxes to the far left, then click the blue 'Change Status' button to assign them all.

After changing the status, the error group will then be moved and visible in its new tab.

Effect of error statuses

Each status has a different effect, relating to what email/plugin notifications you receive when a new error instance is received for that error group. These are:

Active

When a new error occurs, you will receive a notification email. If instances of this error group continue to arrive, you will receive follow-up emails at certain time intervals (so we don't flood you with notifications for every instance).

If you are a low-rate sender, we can flag your application to send 'reoccurred' email notifications at a repeating interval. Please contact us if would you like this enabled.

Resolved

The error group is removed from active counts and the Daily Digest email. If another error instance is received, the error group will be reassigned to Active and a reoccurring notification will be sent.

Resolved In Version

The error group is removed from active counts and the Daily Digest email. If another error instance is received and the version of your code that generated that error is greater than the version you set this error as resolved in, the error group will be reassigned to Active and a reoccurring notification will be sent.

For example: Version 1.0.0.0 of your software is generating a NullPointerException. You fix this error and plan to release the fix in version 1.0.0.1. You mark the error as Resolved in Version 1.0.0.0, and no longer receive new notifications for that error. You then release 1.0.0.1, but the error wasn't resolved and keeps happening. This will cause you to receive a notification that the error had re-occurred, and the error will be set back to Active.

Note that this feature needs you to set the version property on your Raygun error reports. This process should be detailed in the documentation for your Raygun client library.

Ignored

Similar to 'Resolved' above, but the reoccurring email notification is different. This is useful to mark junk error groups separately from your actually fixed errors, for instance when setting up Raygun and sending test exceptions.

If you set an error group to Ignored, the next time it receives an error you will get an email notification informing you it has reoccurred.

Permanently Ignored

This removes the error from all active count as above, but if a new error instance arrives it will not be reassigned to Active. No notifications will ever be delivered again for this error group, until you manually reassign it to Active in the dashboard.

This is useful for ignoring situations like web crawlers that request invalid routes.

Permanently Ignored errors still count towards your quota unless you choose to discard all future occurrences. You can choose to discard all future occurrences of Permanently Ignored errors below.

Error statuses and plan usage

Every error instance that Raygun receives is normally counted against your Raygun Plan limit, which has a certain amount of errors stored per month (visible on the pricing page and your Plan Settings page when logged in).

You can choose to discard error instances if they end up assigned to a Permanently Ignored error group. To do this, change the error group status to Permanently Ignored as usual, but ensure the checkbox in the dialog is selected.

permanently ignore modal window screenshot demonstrating how to prevent ignored errors from being stored.

This will drop the error instance immediately (it won't appear in the dashboard), the error group count won't be incremented, and your plan's monthly error count won't be increased. This behavior will remain until you change the error group's status (you can reset it to Permanently Ignored and clear the checkbox if you wish to receive instances again). This behavior will only take effect for future error instances; those already stored will remain counted against your monthly processing limit even if the error group is deleted.

External Access Token

Documentation - External Access Token

Generate an external access token:

  1. Navigate to the Raygun User Settings Page by clicking your avatar on the top right corner of the app, then clicking on "My Settings"
  2. Click on "Generate New Token"
  3. If you've generated an external access token before, the button will be "Regenerate Token"
  4. Done!

You'll need your external access token for the following services:

You can access the dSym center, JS source map center and ProGuard map centre by navigating to the ‘Application Settings’ submenu on the left sidebar:

Exporting Data

Documentation - Export Crash Reporting Data From Raygun

Customers on Business and Enterprise plans have the ability to export errors captured by Raygun.  Here we'll provide an explanation of the export feature as well as a walkthrough of how to use it.

Overview

The Raygun Crash Reporting export feature allows customers to export all error groups or selected errors groups from within the Crash Reporting dashboard.

When exporting, all instances of an error in an error group will be exported.

Exports are genereated as compressed 7zip files which are then accessed by a link sent out via e-mail once the export process is completed.

Exporting Selected Error Groups

Step 1:

In the Raygun Crash Reporting dashboard, check the box for either all error groups or for individual error groups that you want to export.

Selecting an individual error

Step 2:

Click on the "Export Selected Groups" button

Step 3: 

Review selected groups in the window that opens and click "Add errors to export list"

add errors to report list

Step 4:

Confirm the error groups that you want to export and then click the "Start export" button.

Step 5:

Here you can add/edit e-mail recipients (yellow circle).  Once you have added all the intended recipients, click the "Start export" button (red circle).  

Exporting All Error Groups

Step 1:

Click on "Export" under Crash Reporting on the left navigation sidebar (yellow circle) and select "Export all" from the tab options (red circle).

Step 2:

Select a date and time range (yellow cirlce, defaults to 180 days from today's date) and then click "Start export" (red circle).

Step 3:

Add e-mail addresses to be notified when the export is complete (yellow circle) and then click "Start export" (red circle).

 

No matter which method you use, once the export has been started you should see a final confirmation notification appear confirming the successful export request.

 

*Note:  Exports can take some time to process depending on the volume of errors being exported.  Raygun will e-mail you when your report is ready for download.  Once an export is started, another export cannot begin on this application until the first has completed. 

 

Downloading and extracting the export file

When an export has completed, Raygun will send the recipients you specified during the export a link to download the compressed export file. Note that you don't need to be logged into Raygun to download the file so anyone can download the file if supplied with the download link. However, the download link will only remain valid for 48 hours after the export has completed.

The file you download will have the file extension .7z which is a compressed archive file created with 7-Zip open source software. These files are created using a compression method called LZMA, which is an algorithm for loss-less data compression—a type of compression known for reducing file size while preserving quality. In our testing we found this to provide the best compression for large amounts of JSON text.

To extract the JSON files from the export you will need to download the 7-Zip software or another program that supports the 7-Zip format such as Winzip.

Filtering Error Groups

Documentation - Filtering Error Groups

The Crash Reporting dashboard allows you to filter error groups by a number of elements present in the original error report.

Filter types:

Using filters:

Filtering can be done by clicking the 'Add Filter' button on the top left side of an application's Crash Reporting dashboard.

Assigned Team and Assigned User

Filter error groups by team or the the assigned user on your team.

The assigned user is asignee of an error group. To assign a team or user to an error group, just click on the 'Assign a user' drop down on the top right corner of an error group:

Resolved By User

Filter error groups by the user who resolved the error.

If the error is not resolved, or the error has been resolved then reopened it will not appear in the results.

The user who resolved the error is the user who was last to chnage the errors state from Active to Resolved, effectivly marking the error as fixed:

Browser

Filter error groups by the browser captured in the error payload under 'browserName' nested under 'environment'.

Host

Filter error groups by the host name captured in the error payload under 'hostName' nested under 'request'.

Machine Name

Filter error groups by the machine name captured in the error payload under 'machineName'.

Not Assigned

Filter error groups that have no user or team assigned to it.

Operating System

Filter error groups by the operating system captured in the error payload under 'osVersion' nested under 'environment'.

Tag

Filter error groups by the tag or tags captured in the error payload under 'tags'.

Version

Filter error groups by the version of your application captured in the error payload under 'version'.

Applying multiple filters

You can apply multiple filters at once. Filters are OR'd together, so if you added a filter for Version = 1.0.0.0 and Version = 2.0.0.0, you'd get errors from both Version 1.0.0.0 and Version 2.0.0.0.

Below is an example of a filter for Browser = Chrome and Operating System = Windows 10:

 

Using Wildcards

Some of our filters support the use of wildcards. These filters are:

  • Version
  • Browser
  • Operating System
  • Machine Name
  • Host

When using any of these filters you will have the option of selecting 'Like' as a filter operator.

When 'Like' is selected you will not be restricted to selecting a value from the drop down menu, but instead will be able to enter any string to search by.

You can include both the '?' and '*' wildcard operators in your search.

Note:
An excellent use for this feature is to search for all sub-versions of a Browser or Version.

e.g. 1.0.1* will include all sub versions, like 1.0.1.12, 1.0.1.15, etc...

 

Providing Data for Filtering

The Apply Filter button will not be enabled until you enter a valid value to filter against. There is an autocomplete list that pops up as you start typing to help you find the value you are looking for.

The data must be present in the error entry that is sent to Raygun. Each provider has a different way of including this data.

You can find out how to add this to your error logs in the appropriate section of each langauges documentation page. These can be viewed here https://raygun.io/docs/languages

Inbound Filters

Documentation - Inbound Crash Report filtering for Raygun

Inbound Filters for Raygun Crash Reporting allow you to filter out errors before they are recorded in Raygun, keeping them from being counted against your monthly limit.

Jump to an item:

Inbound filters location

To start setting up Inbound Filters click on "Filtering" under the Crash Reporting option in the left navigation sidebar in Raygun. 

The Inbound Filter screen is divided into two sections:  Create a filter and Active filters.

The "Create a filter" section allows you to specify new filters you want to add for this application.  "Active filters" shows you which filters you have available and which filters are currently active.

Creating filters

When creating a new filter you can choose between several different filter types:

Note: Wildcards (*) are supported for all filter types. New filters are NOT applied to currently stored exceptions, only to incoming exceptions after the filters are created/activated.

IP address

To create an IP Address filter enter in the IP Address of the resource you want to filter out.

Wildcard example: 192.168.0.* will match any address with the first three segments

Machine name

To create a Machine Name filter enter in the machine name of the resource(s) that you want to prevent exceptions being tracked for.

Wildcard example: *PC will match any machine name ending with PC

HTTP -  Hostname or URL path

To create a HTTP filter, choose to discard requests from the Hostname or URL path, then enter in the Hostname or URL path you want exceptions to be filtered out for.

Hostnames

Wildcard example: *.raygun.com will match any sub-domain of raygun.com

Additionally, while not part of the hostname, you can also filter on the protocol here. Example: file://*

URL paths

Wildcard example: */signin will match any paths ending in /signin

Version - Number or Build number

To create a Version filter enter in the version number you want exceptions to be filtered out for.

Additionally, using the drop-down menu, you can set a comparison operator for the version from the following list:

  • Equal to
  • Not equal to
  • Greater than
  • Greater than or equal to
  • Less than
  • Less than or equal to
  • Not found

Wildcard example: 2.* will match any any version in the 2 range

Errors with no specific version

To create a unspecified version filter select "Not found" from the drop-down menu:

Error message

To create a Message filter enter in the string you want to filter out for.  The strings are not case sensitive so rayGUN will match both raygun and RAYGUN.

Wildcard examples: HttpException* will match any messages starting with HttpException, while *HttpException* will match any messages containing HttpException.

Tag

To create a Tag filter enter in the tag name you want to filter out.  The tag names are not case sensitive so mYtAg will match both mytag and MyTag.

Wildcard example:  MyTag* will match any tags starting with MyTag

User agent

To create a user agent filter enter in the name of the user agent you want to filter out.  The names are not case sensitive

Wildcard example: Mozilla/5.0*

Active filters

The top portion of the Active Filters section shows the filters that have been created in the "Create a filter" section.

The bottom portion of the Active Filters section displays the Provider Filters which are supplied by Raygun.  These filters are built and can be turned off and on by clicking on the button sliders located on the far right side of the individual filters.

Once activated, the individual filter's "Date added" field will update with the current date.  If the filter is deactivated the "Date added" value will be cleared.

The currently available Provider Filters are:

  • ​Discard any requests where the user-agent is a known crawler bot
  • Discard any requests for non existent resources (404)
  • Discard any requests where the host is a .local domain or is localhost
  • Discard any requests related to phpMyAdmin access attempts
  • ASP.NET: Discard any requests which failed request validation - e.g. XSS attempts
  • JavaScript: Discard any errors where no information is available due to browser security restrictions

Keyboard Shortcuts

Documentation - Keyboard Shortcuts

Raygun currently supports a few keyboard shortcuts:

  • Press the tilde key (` or ~) to open the application switcher
  • On an error page, the left and right arrow keys will switch between instances of an error type.
  • When writing a comment on an error group, CTRL + Enter will submit the comment.

Managing Organizations

Documentation - Managing Organizations

When you start a trial in Raygun, we create a plan for you. This plan is tied to your user account, so you will receive all billing notifications to your email address.

If your Raygun subscription is for a company rather than for your personal use, you may want to convert it to an Organization plan. This gives you extra flexibility: you can change the name of the plan and set billing contact email addresses. Users in the Owner's Team still recieve billing notifications but your billing team no longer needs a Raygun account to also get those emails.

Converting your plan to an Organization is simple - go to the Plan Settings screen by clicking on your username in the top right corner, then click on the plan you want to modify. At the bottom of the Plan Settings screen, there will be a section labelled "Convert to Organization":

Fill in the name of your Organization, add a primary billing contact in the Billing Email field, and add any other billing contact email addresses into the Billing CC Email Address field. Clicking Convert to Organization will convert your plan immediately.

The Billing CC field can take any number of email addresses, separated by semi-colons. For example, you could add test@example.com; test2@example.com; othertest@example.com and those 3 email addresses will also receive billing notifications. Users in the Billing CC list will not be added to the Owners team.

Managing Teams and Users

Documentation - Managing Teams and Users

Teams can be managed from within the Plan Settings page. This can be accessed from the menu by clicking on your account name and selecting the Plan from under the plans section, then clicking Teams.

Teams

Teams contain a list of both applications and users. All users in a team have access to the applications listed.

There are two special teams, Owners and Users.

Owners have the ability to manage teams, billing and applications.

Users contain all the people invited to a plan. Removing a user from the Users team removes all of their access to applications on the plan.

Creating a Team

You can create additional teams by clicking the green Create Team button at the top of the teams page. After creating a team you will be added to it by default.

Inviting Team Members

You can add team members to a team by selecting a team and entering their email address in the Invite team member box. If they have an existing account with Raygun they will be automatically added otherwise they will be emailed and prompted to join.

 

Merging Error Groups

Documentation - Merging Error Groups

Raygun allows you to merge distinct error groups into one. This can be useful when similar errors are treated as distinct by default.

On an application's error dashboard simply tick the box beside two or more error groups you wish to merge then click the "Merge" button which appears above.

You will then be prompted to select which of the error groups the others should be merged into.

After merging both types of error will now appear under the new merged group and any reoccuring errors will appear in the new merged group.

Notification System

Documentation - Error Notification Preferences Using Raygun

Set up email notifications for Raygun Crash Reporting and Raygun Pulse.

This article covers the following:

How to change your email notification settings

  1. Click on your user name in the top right corner of the page and click 'My notifications':

  2. Once on the 'My notifications' management page you'll be presented with options to do any of the following:
  • Select what type of notifications you receive
  • Choose specific applications you want to get notifications from
  • Choose to receive the informative 'Daily Digest' newsletter packed with your organisation activity in the last 24 hours
  • Choose to receive 'Pulse weekly'- a weekly email outlining recent Pulse activity

Important admin email notifications regarding your plan usage and account access will not be affected - these will continue to be emailed to you as you approach your account limit or have trouble accessing your account.

Please note that the 'My notifications' settings will only apply to your own account and does not affect the notification settings of your team members.

The notification types:

If you have Raygun Crash Reporting enabled, you can alter the following notification options:

Notify on error

This means that you will only get an email whenever a BRAND NEW error is detected, or if a "Resolved" error comes back to haunt you and occurs again.

Example 1: A new error is detected for the first time - an email is sent.
Example 2: An error was marked as resolved but has just reoccurred - an email is sent

Repeating errors

This means that you will only get an email if an error is occurring repeatedly.
NOTE: We will provide you with notification emails only if instances of this error keep arriving. We group our repeating error email notifications according to whether or not they have occurred within a certain time window. 

For example:
An error has occurred, one minute after its initial appearance or reappearance, so an email is sent stating that the error is repeating and the current rate.

Raygun offers smart notifications, so notifications will only be sent at specific intervals (1 minute, 5 minutes, 10 minutes, 30 minutes, 1 hour), should the issue continue to repeat or have thousands of occurences.

Daily digest

Raygun can provide a digest email for specific applications over a 24 hour period. 

Additionally, you can choose to receive an overall daily digest which will report 24 hour activity of all applications within your organization. This option can be found under 'General Notifications' in the 'Manage Notifications' page. You can also set the time that you wish daily digest emails to be sent under your personal settings found under the top right dropdown menu and then 'My Settings'.

In general we recommend using the daily digest emails to monitor errors which continue to occur at low rates.

Interaction emails

By using these settings you will be able to receive notification emails when your fellow team members take actions in the Raygun application.

If you have Raygun Pulse enabled, you will get the following notification options:

Pulse weekly

A weekly email outlining recent Pulse activity on your site or application.

Why am I not getting notifications?

We only send repeated error notifications if the same error is still occurring after 1 minute, 5 minutes, 10 minutes, 30 minutes or 60 minutes since initial appearance (or reappearance if previously "resolved"). You will not receive an email notification for EVERY error occurence.

If you have gone through all of the steps outlined above and have at least one of the checkboxes on your notification preferences page checked, your plan may be exceeding its monthly quota and we are no longer processing new incoming errors.

Integration notifications

Raygun offers two different types of integrations - issue links and chat integrations. Issue links don't produce any notifications in Raygun. Chat integrations can vary per provider, so check out the documentaion for the specific integration you're using to see how these are set up, but generally all integrations use the same smart notification rules so that you are not flooded with notifications when an error is reoccurring frequently.

ProGuard

Documentation - ProGuard support for Raygun

What is ProGuard?

ProGuard is a free Java tool for obfuscation, class file shrinking, optimizing and preverifying. When enabling ProGuard in a native Android application that also uses Raygun, the obfuscation feature requires a bit of attention. By default, your obfuscated class and method names will show up in the stacktraces of exception/error reports submitted to Raygun. This makes the stacktraces difficult to read when looking into the cause of the issues.

ProGuard produces a mapping.txt file that can be used to restore the original class and method names. Such files can be uploaded to Raygun to automatically process all of your exception reports into readable stacktraces. The documentation on this page contains everything you need to know about using ProGuard with Raygun in your native Android applications.

If you haven't set up Raygun in your Android application yet, you can find the documentation to do so here.

Enable ProGuard in a Gradle Android project

A Gradle Android project will contain a couple of build.gradle files - one for the project, and one for the application. ProGuard can be enabled by editing the build.gradle file of the application. This can be found in the root of the app directory. The file should already contain "minifyEnabled" fields that are set to false. Setting this to true will enable ProGuard. Generally you'll want to enable ProGuard in the "release" build type, but not in "debug".

buildTypes {
  release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  }
  debug {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  }
}

Update your pro file

Also in the app folder, you'll find a proguard-rules.pro file which is where you can configure ProGuard settings. You'll need to add the following lines to this file in order for Raygun and ProGuard to play nicely together. Each line is explained below so that you can understand what these changes to your pro file will do.

-keep class main.java.com.mindscapehq.android.raygun4android.** { *; }
-keepattributes Exceptions, Signature, InnerClasses, SourceFile, LineNumberTable
-renamesourcefileattribute SourceFile

-keep is required here in order for Raygun4Android to function correctly. This line tells ProGuard not to obfuscate any of the code in Raygun4Android. Some of the classes are used to build up a Json payload, which if obfuscated is going to create a payload that Raygun can’t read.

-keepattributes is recommended in order to keep certain bits of information. In particular, Signature is needed to resolve generic type names and LineNumberTable is so that your stack traces have line numbers which is generally what you want. By default, file names will not be available in the stacktraces. The SourceFile entry on the -keepattributes line will cause file names to be available in the stacktraces, but note that they are not obfuscated. Don't include SourceFile on the -keepattributes line if you don't want your file names to be included in your app package.

-renamesourcefileattribute is optional. This causes the file names of your code to all appear as “SourceFile” in the stacktrace. This is for added secrecy so that your actual file names can not be seen in the application package. Even with a mapping file, the original file names can not be resolved, which is not so good for debugging. If you don't mind your file names being kept, then feel free to remove this line for the extra debugging help.

Upload your ProGuard mapping files

When you use Android Studio to build your application package, ProGuard will write a mapping file to the /app/build/outputs directory of your application project. By uploading the mapping file to Raygun, all your exception reports will be retraced with the mapping file and be presented to you with readable stacktraces. Raygun provides two ways to upload your files - an API end point which is useful for automation, and manual upload from within the Raygun web app.

It's important to note that every time you make changes to your code and then build your application, you'll need to upload the newly generated mapping file if you want readable stacktraces from that build. Raygun is most valuable when your application is out in the wild being used by customers, rather than while debugging. So you generally only need to upload mapping files for builds of your application that get released to your customers. Raygun selects a mapping file you've uploaded based on the versionName of your application (as set in your build.gradle file). Specifying which version that each mapping file is for is explained in the instructions for both of the upload techniques below.

API endpoint

The recommended way of uploading the mapping files to Raygun is by automating a POST to the API endpoint. Below are examples of uploading a mapping file using cURL and different authentication methods. Each <VARIABLE> needs to be substituted (including the angle brackets) with your own value as described below each code example.

Username and password

curl
  -u <USERNAME>:<PASSWORD>
  -F "file=@<PATH_TO_MAPPING_FILE>"
  -F "version=<VERSION_NAME>"
  https://app.raygun.com/upload/proguardsymbols/<RAYGUN_APPLICATION_ID>

<USERNAME> and <PASSWORD> are your Raygun account credentials.
<PATH_TO_MAPPING_FILE> is an absolute or relative path to your mapping file including the file name and .txt extension.
<VERSION_NAME> is the version name of your application as set in your build.gradle file. This is needed to select the correct mapping file for each of your exception reports.
<RAYGUN_APPLICATION_D> is available in the URL of your Raygun application dashboard.

Basic authentication

curl
  -H "Authorization: Basic <BASIC_AUTH_TOKEN>"
  -F "file=@<PATH_TO_MAPPING_FILE>"
  -F "version=<VERSION_NAME>"
  https://app.raygun.com/upload/proguardsymbols/<RAYGUN_APPLICATION_ID>

<BASIC_AUTH_TOKEN> can be generated by taking your Raygun account credentials in the format username:password and then using the base 64 result.
<PATH_TO_MAPPING_FILE> is an absolute or relative path to your mapping file including the file name and .txt extension.
<VERSION_NAME> is the version name of your application as set in your build.gradle file. This is needed to select the correct mapping file for each of your exception reports.
<RAYGUN_APPLICATION_D> is available in the URL of your Raygun application dashboard.

External access token

curl
  -F "file=@<PATH_TO_MAPPING_FILE>"
  -F "version=<VERSION_NAME>"
  https://app.raygun.com/upload/proguardsymbols/<RAYGUN_APPLICATION_ID>?authToken=<EXTERNAL_ACCESS_TOKEN>

<PATH_TO_MAPPING_FILE> is an absolute or relative path to your mapping file including the file name and .txt extension.
<VERSION_NAME> is the version name of your application as set in your build.gradle file. This is needed to select the correct mapping file for each of your exception reports.
<RAYGUN_APPLICATION_D> is available in the URL of your Raygun application dashboard.
<EXTERNAL_ACCESS_TOKEN> can be obtained from Raygun by clicking your name in the top right corner, select "My settings" and then hit "Generate external access token" or copy it if you already have one.

Additional options

By default, the upload will fail if the version you specify has previously had a mapping file uploaded. If you do want to overwrite existing version names with the new mapping file, add the following to the cURL POST:

-F "overwrite=true"

If the upload is clearly not working, add the verbose option to get more information about what's wrong.

-v

Possible results

200 if the upload was successul.

302 if you don't provide any form of authentication.

400 if the version is not provided. If the file does not have a .txt extension. If a file is already mapped to the given version and overwrite is false.

401 if credentials are incorrect, or you don't have access to the application.

404 if the url or app id is incorrect.

curl (26) if the path to the mapping file is incorrect.

Manual upload

A drag and drop zone is available in the Raygun web application for manually uploading ProGuard mapping files. This can be found by first visiting the desired application in your Raygun account, selecting "Application settings" from the side menu, and then clicking "ProGuard map center". Before uploading a mapping file manually, you'll need to rename it to be the same as the versionName of your application as set in your build.gradle file (but keep the .txt extension). This is so that for each exception report, Raygun can use the correct mapping file that was generated from the same version of your application.

Managing your uploaded mapping files

Regardless of how you upload your mapping files, they will all be listed in the PrGuard Mapping Center as seen in the image above. You can find the ProGuard Mapping Center by first visiting the desired application in your Raygun account, selecting "Application settings" from the side menu, and then clicking "ProGuard map center". Each listed mapping file includes a button to delete the file. When uploading a file manually, the upload will fail if the same version is already listed. Delete the existing file first if you wish to upload a new mapping file for that version.

Processing your error reports

With your mapping file uploaded, Raygun will retrace the stacktraces of all exception reports flowing into your Raygun dashboard. If any exceptions came into your Raygun account before you uploaded the mapping file for that version, then you can manually trigger a reprocessing of an exception report. To do this, navigate to an exception report instance in your Raygun dashboard that needs reprocessing. While on the Summary tab (default) scroll to the bottom to find a "Reprocess crash report" button. Click this and refresh the page a little later to see the reprocessed stacktrace.

Reports

Documentation - Reports

This feature allows you to create, download, email and save reports based on specific Crash Reporting data you want to focus on. This feature is included for all Business and Enterprise plans.

Jump to a specific part of the documentation:

Create reports

1. Click on 'Reports' in the application sidebar under 'Crash Reporting':

2. Click on 'Create new report' and give your report a name:

3. Add columns by selecting which properties from your error reports you would like to include, including custom data:

If any errors do not have information for a column, 'unspecified' will be used. Columns can be re-organised in any order, just simply drag them into the order you want.

'Message' is a default column and cannot be removed. 

4. Create primany filters. Primary filters narrow down the errors that will be included in the report.

To create a primary filter, select the filter, operator and filter property. The filter dropdown contains properties from your error reports, including custom data. 

Example: You can choose to only include errors from version 1.3.0 or greater:

Primary filters cannot be changed after the report has been queued for processing.

5. Define the time range:

6. Click on 'Create report'. You will recieve an email once the report is ready to view. It can take several minutes to build the report, depending on your error volume.

View reports

Once a report is successfully generated, you can view it in the Reports table:

The report will contain a static set of data at the point in time it was generated. The data does not get updated, however, if you wanted to reuse the same columns and filters from a report, you could apply secondary filters or re-run the report with a new date range.

Search and secondary filters

Search

You can search within a report using the search box at the top. The results will automatically update and you can save the updated results as a new report:

Secondary filters

Use secondary filters to narrow the report results even further, without permanently removing entries. The filters are based on the report columns and you can add multiple filters.

Just choose the filter, operator and specific filter property you want and the results will automatically update. You can then save the resutls as a new report.

Re-run reports

If you already have a report with all the filters you require, but want to include errors that are beyond the date range of the original report, you can use the re-run report feature.

Click on a report you want to re-run, then click the 'Re-run report' button on the top right and set the new date range.

You can also view all the re-run reports by clicking on the 'Currently viewing' dropdown:

Schedule reports

Once a report has been generated, it can be scheduled again. Scheduling allows you to reuse the same report definition of columns and filters to generate new reports at a frequency that suits your reporting needs.

To schedule a report, just click on the stopwatch icon on the top right next to the 'Re-run report' button (see screenshot above).

Choose when you want to schedule the reports and click 'Done'. You will recieve an email one the report is ready to view.

View report history

Reports that have been re-run or scheduled will create a report history. To view the history, just click on the hyperlinked number in the history column on the Reports table:

Or, if you're already in a report, click on the 'Currently viewing' drop down and click 'View complete history':

Manage reports

There are a variety of ways to manage and store your reports. You can:

  • Download reports as a CSV or Sqlite file for further data analysis outside of Raygun
  • Email reports as a CSV or Sqlite file to send to others
  • Delete reports once they have been successfully generated

These options are found within a report, on the top right of the page:

The number of reports you can generate is based upon your plan size. 

Raygun Sidekick

Documentation - Raygun Sidekick

In short, the Raygun Sidekick is a Mac application that will detect, zip and upload dSYM files to your Raygun account. This is a must-have tool for all developers working on native iOS applications using our native Raygun4iOS provider. dSYM files are essential to extracting great stack trace information out of native iOS error reports that you send to Raygun. The Raygun Sidekick app makes sure that you don't forget to upload a dSYM, and provides the simplest possible workflow for doing this.

Getting started

First off, download the latest version of the Raygun Sidekick here. This tool is distributed as a dmg, so when you open it up, drag the Raygun icon into the Applications folder. Then you can open the Applications folder and run the Raygun Sidekick app from there. At this point the dmg is no longer needed, so you can dismount it.

Install Raygun Sidekick

If you are having issues running the Raygun Sidekick app, please see the troubleshooting section below.

The first time you run the Raygun Sidekick, you'll be presented with the Preferences window where you can log into your Raygun account. After logging in, feel free to change any of the other preferences and then close the window.

Log in

Your trusty Raygun Sidekick is now standing by - you can see the Raygun icon in the Mac menu bar.

Raygun Sidekick

Workflow

Whenever you perform an Archive operation on your iOS application in XCode, The Raygun Sidekick will ping you a Mac notification. (To perform an Archive operation, make sure XCode is set to build for an iOS device, and then select Archive from the Product menu).

Raygun Sidekick Notification

Clicking the notification will open the uploader window and display information about the dSYM that XCode built during the Archive operation. Use the combo box to select which one of your Raygun.io applications you want to upload the dSYM to. (Tip: Raygun Sidekick will remember which application you choose for each dSYM so that you don't need to select it every time). Now simply hit the "Upload" button and the Raygun Sidekick will take care of the rest. When the upload is complete, you can go ahead and close the window.

Upload dSYM

Manual uploads

If you accidentally closed or missed a notification, click the Raygun icon in your Mac menu bar to see a list of the 5 latest dSYMs generated by XCode. Simply click one of these that you need to upload. This will bring up the upload window which you can use in the same way as described above.

Recent dSYM List

If you need to upload an older dSYM, or a dSYM that isn't in the XCode Archives folder, you can click the Raygun icon in the Mac menu bar, and then select "Open uploader app...". In the window that opens, you can either drag and drop a dSYM or xcarchive file, or click to open a file selector. After doing so, the window will change to show the usual upload process as described above.

Drop zone

Update options

Early on, the Raygun Sidekick will ask you if you want to automatically check for updates - which we recommend that you do. This will only be asked once, but you can change the update options at any time. Click the Raygun icon in the Mac menu bar, and then select "Preferences...". In the Preferences window, select the "Updates" tab near the top of the window. Here you can optionally check for updates automatically, download updates automatically, and set a check-for-updates frequency. If you've heard that we've released a new version of Raygun Sidekick and you just gotta get it now, click the "Check for updates" button in the Preferences windows, or in the Raygun Sidekick Mac menu.

Auto-update preferences

Troubleshooting

Issues running the Raygun Sidekick app: As with most Mac developer tools that aren't published to the app store, Gatekeeper may try prevent you from running the application. The Raygun Sidekick and all the internal frameworks are signed with a Developer ID, but for more recent versions of OSX, Gatekeeper may still warn you since it didn't come from the app store. If you do run into this issue, click the Mac icon in the top left corner of your Mac menu bar, and then select "System Preferences...". In the window that opens, select "Security & Privacy", then under "Allow apps downloaded from:" switch to the "Anywhere" option. Now you will be able to run the Raygun Sidekick application. After doing so, this will no longer be an issue, so go ahead and change you security options back. (We are exploring options to resolve this issue in a future version).

Trouble signing in or out: If you tried out the beta of the Raygun Sidekick, it is possible that when running the latest version, the Raygun Sidekick doesn't seem to want to stay signed in or out. This issue can be caused by multiple Raygun Sidekick passwords stored in your Keychain. This is very easy to fix: simply open the "Keychain Access" application on your Mac, then locate and delete any "Raygun Sidekick" passwords. Now you'll be able to sign in to the Raygun Sidekick and everything will work as expected from now on.

Download

The latest version of the Raygun Sidekick can be downloaded right here. If you have any questions, we'd love to hear from you in the forums.

Search

Documentation - Searching error groups

Error Search

Raygun search allows you to view error groups and instances that match the keyword queries you enter. The search box is available below the application switcher in the top-left corner of the application dashboard.

By default search queries with multiple keywords are ANDed together, so only errors that match all keywords will be returned.

Fuzzy queries

Raygun search supports partial matching (e.g for when searching for affected users), so to locate a user 'John Smith' with the email 'person99@raygun.io', you could search for person99person99@raygunraygun.io, person, john or smith and other such combinations.

camelCase and PascalCase strings (e.g class names) are also supported - so if you have a type like myAwesomeCustomException, it can be located by entering any combination of the keywords myawesomecustom or exception. This is not currently case-insensitive, so you can also query for it with myAwesomeCustomException, but not myawesomecustomexception.

You are able to search with terms that contain a colon if they are not listed in the reserved fields above. This includes the double-colon scope resolution operator ('::') as used in some languages.

You can also search for method/function calls that include '()' - for instance the query contains() will return errors that have 'Contains()' in their stack trace.

Well-known field queries

Many important fields are indexed, including the message, class name, stack trace, and more. By default, all of these are searched when submitting a query. If you want to target a particular field, you can add one of these prefixes to the query:

  • message
  • version
  • url
  • querystring
  • host
  • impacteduser
  • exceptiontype
  • stacktrace (class names and method names only)
  • innererror
  • customtags
  • customdata
  • machinename
  • browser
  • operatingsystem
  • device
  • architecture
  • devicemanufacturer
  • model
  • errorgroupid

For instance, to search only through the custom data of your errors, enter customdata: foo.

Browser searching

Errors for certain browsers can be searched for by providing a search query such as browser: chrome or browser: ie. You can also specify the version, for instance browser: ie8. This provides an alternative to the browser predicate in the filter UI.

Query by Error Group ID

As above, you can search for a particular error group by ID by submitting the query errorgroupid: {{id}}. The error group ID is located after the /errors/ segement in the REST URL path for an error group. For instance, /crashreporting/{{appid}}/errors/{{errorgroupid}}.

Exact queries

Wrap a query in double-quotes, e.g. "foo-bar", which will match raw message, separated only by whitespace. For instance, without double-quotes, exceptions will be returned which have the tokens 'foo' and 'bar', but when wrapped in quotes only exceptions with messages that contain the string 'foo-bar' will be included.

Wildcarding

The search engine supports the standard wildcard characters * and ?. When included in your search query string, these will match from all characters preceding it, to any after it (or all, if it is the final character). This is supported for both exact and non-exact queries (ones that aren't wrapped in double-quotes), but is particularly useful for the latter for precise matching.

Wildcard querying allows you to match part of a substring, by matching on any errors that have a particular field with a value that starts with that string exactly. For instance, the query "#ff*" will return any errors that include both #ffffff and #ff0000, but not #000000. The first character in the query string should not be one of the two wildcard characters above - it must a regular character (otherwise it is ignored).

Boolean queries

Raygun Search supports common boolean logic with your supplied terms:

  • AND - matches error groups where both terms exists. For instance 'foo AND bar' will return error groups that contain both 'foo' and 'bar'.
  • OR - matches error groups where either term exists. For instance 'foo OR bar' will return all error groups that contain either 'foo' or  'bar'.
  • NOT - matches error groups that don't contain the next term. For instance 'NOT foo' will return all error groups that don't contain 'foo'
  • Sub-query grouping with brackets - specify precise boolean queries with curvy brackets. For example '(foo OR bar) AND baz' will return all error groups that contain 'baz' along with 'foo' or 'bar',

Please note that all boolean terms must be written in UPPER CASE, terms in lower case will not act as a boolean operator.

User Search

Specific users can be searched on the "Users" page. Simply enter provided user's details into the search box. The search is performed on the firstNamefullNameemailidentifier and uuid field's by default. Results are ordered by the number of attributes matching the search terms.

Single Sign-On

Documentation - Using Single Sign-On with Raygun

Raygun supports SAML2 based single sign-on (SSO). To get your enterprise integrated with Raygun SSO please contact our team by either sending us an email or by using the "Contact Raygun" link within the application. We will get in touch to complete the integration process with your identity provider.

Once integration has been completed, users can log in to Raygun using SSO by either using the "Sign-in with SSO" link from the main application sign-in page or by using the custom endpoint that we will have supplied for you during the integration process. When signing in using SSO you will be redirected to your identity provider (e.g. G-Suite), where you may need to complete additional steps (e.g. selecting the authenticating account) before being redirected back to Raygun. If you have two-factor authentication applied to your account, you will still need to supply an authentication token before completing the authentication process.

For provisioning new team members, you will first need to create a new account for your team member with the email address on the account matching the email address which will be supplied by your identity provider. Alternatively, you can invite the team member into your organization. Your team members must be joined to your Raygun team for authentication to succeed.

For de-provisioning users from the system, you can either contact us to delete the user account, or remove the team member from the user's team in your Raygun account.

If you would like to ensure all users on your team must authenticate through your single sign-on provider, please contact us and we can apply this policy to your account.

 

 

Source Maps

Documentation - Source Maps

When dealing with minified JavaScript the information supplied in stack traces does not provide accurate line/column information to track down the source of the error. To deal with this you can utilize a source map which will provide the translation between the original JavaScript source and the minified version.

Raygun supports source map decoding for the information supplied by browsers which produce a line and column number for error information. Typically any errors which are specifically raised by you will contain this information. Recent versions of Chrome will also produce this information for window.onError global errors.

What you need

Raygun requires the following to complete the decode process:

  • Valid line/column numbers to be present in at least one line of the stack trace
  • An accessible minified JavaScript file as specified in the stack trace. This is either downloaded or retrieved from the source map center to determine if there is map file present
  • The map file to be correctly indicated in the minified JavaScript file using a footer comment
  • An accessible source map file (either publicly hosted or uploaded to the source map center)
  • To provide inline code snippets we also require the sources content field of the map file to be present or for the map file to point to publicly accessible unminified source JavaScript files. If neither of these are provided decoding of line numbers and variable names can still succeed but no inline code will be displayed with the stack trace

Recommended minifier tooling

We recommend using UglifyJS2 to generate a source map file.

Both the minified JS and its map file should use relative pathing. Look into the -p and --source-map-root options.

Validate your Source Maps

Ensure that your source maps are compatible with Raygun by using our validation tool. We have created a handy tool that allows you to validate your source map files for use with Raygun..

Uploading JavaScript files

If you do not wish to have publicly accessible JavaScript files you can upload them directly to Raygun from the JS Source Map Center. This is within the Application Settings submenu on the main dashboard.

Within the Source Map Center you can upload files and label them with the URL they would normally be accessed from. When a JavaScript error is mapped we will use the files you uploaded instead of trying to access them from your servers.

In addition to the upload page we offer an API endpoint, the URL is displayed in the Source Map Center and is specific to each application.

Simply send a post request with "URL" and "file" parameters specified to upload the file. Any existing files with the same URL will be overwritten.

The request must be authenticated by adding either a basic auth header for a user with access to the application (eg. "Authorization: Basic MyBasicAuthToken") or an External Access Token appended as a querystring parameter (eg. "https://app.raygun.io/upload/jssymbols/MyAppId?authToken=MyExternalAuthToken").

External Access Tokens can be generated from your user settings page.

Here is a cURL example request using Basic Authorization:

curl
  -X POST 
  -u email@example.com:password 
  -F "url=http://example.com/myjs.min.js" 
  -F "file=@C:\website\js\myjs.min.js"  
  https://app.raygun.io/upload/jssymbols/MyAppId

Here is an example using the Grunt plugin grunt_http_upload using an External Access Token:

http_upload: {
  your_target: {
    options: {
      url: 'https://app.raygun.io/upload/jssymbols/MyAppId?authToken=MyExternalAuthToken',
      method: 'POST',
      data: {
        url: 'http://example.com/myjs.min.js'
      }
    },
    src: 'C:\website\js\myjs.min.js',
    dest: 'file'
  }
}

Private source maps setup example

To get started you will need a tool which can help produce a source map as part of producing a minified version of your JavaScript. We personally use UglifyJS and find it to be a great tool. To install it you will need Node.js installed, you can then run:

npm install uglify-js -g

This will install Uglify so that it's globally available which is what you will typically want.

To produce minified JavaScript we can simply run 

uglifyjs example.js -o example.min.js

To produce minified JavaScript with a mapping file we can run

uglifyjs example.js -o example.min.js --source-map example.min.js.map

This produces the minified file "example.min.js" as well as a source map file "example.min.js.map"

If you deploy the minifed file example.min.js to production but do not wish for any or some of these files to be publicly accessible you will need to upload these files to Raygun to get source mapped stacktraces.

You can do this from within Raygun by accessing the JS Source Map Center in the Application Settings sub menu.

Here you can simply select the minified, mapping and source files to upload. After uploading you can type the URL the resource is mapped to so when our source mapping process tries to retrieve the file, it uses the file you uploaded instead.

You can determine the URL to enter by looking at the map file's "file" and "sources" properties. You can then prepend the URL of the minified file on production minus the filename.

For instance, if we have a minified file example.min.js located at http://example.com/scipts/example.min.js and we upload example.min.js, example.js and example.min.js.map to Raygun. We would assign their URL's like this:

After the files are uploaded they will be used in the source mapping processes. This is what your mapped stacktrace will look like:

Using Private Source Maps for Hybrid Mobile Apps

With many mobile applications being written in JavaScript within containers such as Apache Cordova, using Raygun4js is an appealing way to track errors across all platforms. However as the application is hosted on the phone instead of a website with a static URL you may find that error stacktraces contain files paths which differ across different platforms and devices. This introduces some difficulty when trying to utilize source maps which require the minifed and mapping files to be uploaded and labeled with exactly the same URL's as would appear in a stacktrace.

For this reason we recommend adding a handler to the raygun4js provider to rewrite file's URLs before the error is reported back to Raygun. This means that errors will be reported from the same domains and not unique domains for every platform or device.

An example of such a handler is shown below:

//handler method
var beforeSend = function(payload) {
    var stacktrace = payload.Details.Error.StackTrace;

    var normalizeFilename = function(filename) {
        var indexOfJsRoot = filename.indexOf("js");
        return 'http://normalizedurl.com/' + filename.substring(indexOfJsRoot);
    }

    for(var i = 0 ; i < stacktrace.length; i++) {
        var stackline = stacktrace[i];
        stackline.FileName = normalizeFilename(stackline.FileName);
    }
    return payload;
}

//attaching the handler to the Raygun provider
Raygun.onBeforeSend(beforeSend);

This handler removes the platform and device specific paths from the URL's present in an error's stacktrace.

For instance an error occuring on an Android phone within the file

file://android_asset/www/js/myjsfile.min.js

and on an iOS device within the file

file://accounts/1234/appdata/b12b33f1-519b-4d1c-8d68-315513ecbac1/www/js/myjsfile.min.js

will both report

http://nomalizedurl.com/js/myjsfile.min.js

as the URL of the file within which the error occured.

This allows the use of a single set of sourcemaps for source mapping across all deployments.

Notes:

There could be up to a 30 minute delay before the mapping process starts utilizing any uploaded files. To reprocess any errors which occur during this time simply hit the "Re-process this error for Source Maps" button on an error instance.

Code snippet insertion is only available if there are less than 50 source files referenced in the map file.

Managing files in the JavaScript Source Map Center

Files in the JavaScript Source Map Center can be managed via a few API calls.

A GET request to https://app.raygun.io/jssymbols/[applicationIdentifier] will return a JSON object listing all files within the center. eg.

curl
  -X GET 
  -u my@email.com:mypassword 
  https://app.raygun.io/jssymbols/[applicationIdentifier]

Returns:

{ 
  "Count": totalNumberOfItems, 
  "Items": [
    {  
       "Url": "https://urlOfItem", 
       "FileName": "fileName.js", 
       "UploadedOn": "2016-01-01..." 
    },
    ...
  ] 
}

A DELETE request to https://app.raygun.io/jssymbols/[applicationIdentifier]/all will remove all files within the center. eg.

curl
  -X DELETE 
  -u my@email.com:mypassword 
  https://app.raygun.io/jssymbols/[applicationIdentifier]/all

A DELETE request to https://app.raygun.io/jssymbols/[applicationIdentifier] will remove files with the specified URLS from the center. eg.

curl 
  -X DELETE 
  -u my@email.com:mypassword 
  -F "url=https://example.com/js/myjs.min.map"
  https://app.raygun.io/jssymbols/[applicationIdentifier]

All requests use the same authentication methods as the upload call (Basic Authentication and Token Authentication).

Summary Favourites

Documentation - Summary Favourites

Summary favourites enables you to customize the fields you'd like to see on the Summary tab for all your Crash Reporting errors groups.

What are Summary favourites

When you click an error group in Crash Reporting, you will land on the error group's Summary tab. There will be yellow stars on the right side of most of the fields - these indicate that these fields have been saved as a 'favourite' to be viewed on the Summary tab:

If you have not chosen any Summary favourites, the Summary tab will show the default favourites. You can view a list of the default favourites below.

Choose favourites

To choose favourites to add to the Summary tab:

  1. In an error group, navigate to a tab that contains selectable favourites
  2. If there's a field with a grey star next to it, simply click on the grey star to add the field to the Symmary tab:
  3. To remove a favourite form the Summary tab, just click on the yellow star.

Reset favourites

To reset Summary favourites back to the default selection:

  1. Navigate to the Raygun User Settings Page by clicking your avatar on the top right corner of the app, then clicking on "My Settings"
  2. Click on "Reset Summary Favourites"
  3. Done!

Default Summary favourites

  • Occurred on
  • Machine name
  • Message
  • Tags
  • Class name
  • Version
  • Request
    • Host name
    • URL
    • IP address
  • Error
    • Message
    • Class anme
  • User
    • Identifier
    • Email
    • First name
    • Full name
  • Stack trace

Two Factor Authentication

Documentation - Two Factor Authentication

Enabling two factor authentication adds an additional layer of security to your Raygun account.

To set up two factor auth navigate to your account settings by clicking your name in the top right then "My settings".

Click "Enable Two Factor Authentication". Here you will be asked to choose an authentication application you wish to use. A few suggestions are listed.

Once you have choosen an authenticator you can progress to the next page where you can either scan a QR code or enter the code manually. Simply enter your password and auth code to confirm and enable two factor authentication.

SMS Authentication

To set up SMS authentication you must have two factor authentication enabled and a phone number saved in your profile settings:

Set up SMS authentication:

  1. Navigate to your account settings by clicking your name in the top right then "My settings"
  2. Click "Enable SMS Authentication"
  3. Click "I'm ready, let's set it up"
  4. Click "Send SMS code" to receive your authentication code - it should arrive within 30 seconds
  5. Enter your credentials when receive the authentication code
  6. Click "I want to enable SMS authentication"
  7. Done!

SMS authentication acts as a fallback authentication method if you have two factor authentication enabled but lose the mobile authenticator application.

In order to enable SMS authentication you will need a device capable of receiving SMS messages.

You won't be able to change the phone number associated with your Raygun account while SMS authentication is enabled.

If you want to change the phone numbers you will need to disable SMS authentication before updating your credentials.

 

User Tracking

Documentation - Set Up User Tracking In Raygun

In Raygun, you can capture data about currently logged in users for Crash Reporting and Pulse. You can provide whatever user information that will help you solve issues, but make sure to abide by any privacy policies that your company follows

Crash Reporting

Providing user information will allow your Crash Reporting dashboard to display the number of unique users that each exception has affected. This is a huge help with prioritising issues to solve that have the largest impact.

If available, you could provide an ID that is meaningful to you such as a database ID. This could help you to look up information at your end that aids in solving issues. If you are able to provide a name and contact details, you'd be able to contact customers to let them know that issues they've encountered are being worked on, or have been solved.

If you don't want to include easily identifiable user information such as email and name, providing a unique guid at the very least will allow you to see the number of users that are affected by each error.

User tracking is available in the following Raygun providers:

Pulse

Providing user information will allow your Pulse dashboard to display the username in the Sessions and Users tab. If you have user tracking enabled, you will be able to view the user's full name and email. This is helpful for contacting customers who you see have had bad experiences on your site or application.

For tracked and anonymous users, you can view the user location, browser and platform information, experience and session information, and error history. Error history will only be available if you have Crash Reporting activated.

Set up user tracking in Pulse.

Documentation missing?

If we don't have documentation about your desired topic, send us a message and we'll create it for you.