BugSnag is now Insight Hub - we're making some changes to how the product looks, but this won't impact the way you use BugSnag or any of your integrations.

Performance monitors and alerting

Receive real-time alerts and notifications about your application’s performance.

Performance Monitors in BugSnag allow you to configure a set of rules for checking your application’s performance at regular intervals. If the performance of your application is above or below the thresholds you define, BugSnag will trigger an alert. Alerts can also be sent to 3rd party integrations you’ve already setup in BugSnag, including team notifications, incident management tools and data forwarding services.

Configuration

From the BugSnag Performance dashboard sidebar, or the Project Performance Monitor page, click ‘Create performance monitor’. Inside the dialog, you will see a set of options that allow you to configure a new monitor:

  • Name – input a name for the monitor. This name will be included in notifications.
  • Percentile – select the percentile, period and minimum number of spans which will be checked by the monitor. For example you may wish to monitor P90 over the last hour when 1000 or more spans have been received. An alert will not be triggered unless the minimum span count is exceeded; to avoid over-sensitive alerting, the minimum count is used only to decide whether to trigger an alert and is ignored for any subsequent status changes.
  • Threshold – the calculated percentile is compared against the selected threshold:
    • Absolute threshold – set a warning and/or critical threshold to test the percentile against. You can choose to check whether the percentile is either faster than or slower than the thresholds.
    • Performance Target thresholdcoming soon
  • Monitor – select the category, or categories, of span groups to monitor – for example all page loads, app starts or network requests. The span groups can be filtered by:
    • All – monitor every span group in the category.
    • Any except – set specific span group exclusions, for example certain pages or screens in your app.
    • Only where – explicitly include only specific span groups.
  • Filters – filter the spans to monitor by a specific release stage, or use a saved filterset for more complex filter criteria.
  • Notifications – select 3rd party integrations to send triggered alerts to. Any collaborator in the project with Performance Alert emails enabled will automatically receive emails for this Performance Monitor.

The percentile for each span group being monitored is evaluated and compared against your threshold at regular intervals – typically every minute.

Performance Monitor status

A Performance Monitor can be assigned one of three statuses:

  • Good – no active alerts on the Performance Monitor.
  • Alerting – there are one or more active alerts on the Performance Monitor. Active alerts may be either warning or critical status.
  • Disabled – the Performance Monitor has been disabled, for example to temporarily silence notifications while there is a known issue with your app. Disable a Performance Monitor by clicking the Disable action buttons.

Performance Monitor page

The Performance Monitor page in the BugSnag dashboard shows you all the information you need to understand the current state of the monitor.

The sidebar shows all the rules that have been setup in the monitor’s configuration.

The table shows the list of all alerts that have been triggered for the lifetime of the monitor. An individual alert can be in one of three states:

  • Warning – the performance of the span group is slower/faster than the configured warning threshold.
  • Critical – the performance of the span group is slower/faster than the configured critical threshold.
  • Resolved – the alert has been resolved.

An alert may be resolved for one of a few different reasons, including:

  • Resolution condition met – the performance of the span group is no longer faster/slower than the threshold(s) you defined.
  • No data – no data was received during the last evaluation period to calculate a percentile.

Notification emails

Performance Monitors will send notification emails when an alert is triggered or resolved to all project collaborators who have Performance Alert emails enabled.

You can adjust your personal Performance Monitor email settings under My email notifications > Performance alerts from Settings.

Data forwarding payloads

If you have configured notifications to be sent to a data forwarding integration, the payload will be based on the following structure:

{
    // The account connected to the event (always present)
    account: {

      // The ID of the account (always present)
      id: "56b9ca7f17025f8756f69054",

      // The name of the account (always present)
      name: "My Company",

      // The URL to the account (always present)
      url: "https://app.bugsnag.com/accounts/my-company"
    },

    // The project connected to the event (always present)
    project: {

      // The ID of the project (always present)
      id: "56b9ca7f17025f8756f69054",

      // The name of the project (always present)
      name: "My Test Project",

      // The URL to the project (always present)
      url: "https://app.bugsnag.com/my-company/my-test-project"
    },

    // The reason why the payload was fired (always present)
    trigger: {

        // The type of trigger sent (always present)
        type: "performanceAlertStatusChange",

        // Detailed description of why the trigger was fired (always present)
        message: "Critical performance alert triggered",

        // The status this alert has transitioned from (always present)
        previousStatus: "warning"

        // The current status of the alert (always present)
        status: "critical",

        // The reason this alert was resolved (optional)
        resolutionReason: "no_data"

        // The calculated value based on the monitor's configuration
        triggerValue: 456
    },

    // Details of the performance monitor (always present)
    performanceMonitor: {

        // The ID of the monitor (always present)
        id: "67ac76800d154ce8317f7b71",

        // The performance type (always present)
        type: "duration_threshold",

        // The URL of the monitor (always present)
        url: "https://app.bugsnag.com/my-company/my-test-project/performance/monitors/67ac76800d154ce8317f7b71",

        // The configuration of the monitor (always present)
        config: {

            // The monitor's name (always present)
            name: "Test monitor",

            // The period over which to calculate the percentile (always present)
            period: "1m",

            // Whether a less than or greater than check should be used for comparing the
            // percentile with the threshold (optional)
            comparator: "greater_than",

            // Minimum span count before the monitor should trigger an alert (optional)
            minimumSpanCount: 1000,

            // The warning threshold (optional)
            warningThreshold: 300,

            // The critical threshold (optional)
            criticalThreshold: 500,

            // The percentile to be compared against the configured threshold(s) (optional)
            percentile: "p50"
        }
    },

    spanGroup: {

        // The ID of the span group that triggered the alert (always present)
        id: "1.full_page_load.[FullPageLoad]/",

        // The category the span group belongs to (always present)
        category: "full_page_load",

        // The display name for the span group (always present)
        displayName: "MyImportantPage",

        // Link to the span group in the BugSnag dashboard, filtered to the period the alert
        // was triggered (always present)
        value: "https://app.bugsnag.com/my-company/my-test-project/performance/page-load/1.page_load.%2F?filters[span.before][][type]=eq&filters[span.before][][value]=2025-02-12T10:25:00Z&filters[span.since][][type]=eq&filters[span.since][][value]=2025-02-12T10:24:00Z&pageLoadType=full_page_load&percentiles[]=p50"
    }
}