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.
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:
The percentile for each span group being monitored is evaluated and compared against your threshold at regular intervals – typically every minute.
A Performance Monitor can be assigned one of three statuses:
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:
An alert may be resolved for one of a few different reasons, including:
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.
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"
}
}